.filter-panel {
  margin-block-start: var(--space-3);
  color: var(--muted);
  font-size: 0.9rem;
}

.filter-panel summary {
  display: inline-flex;
  align-items: center;
  min-block-size: var(--space-8);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  align-items: end;
  gap: var(--space-3);
  margin-block-start: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--card);
}

.filters .field { margin: 0; }
.filters .checkbox-field { align-self: center; color: var(--ink); }

.listing-section h2 {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 28px 0 14px;
  font-size: 1.05rem;
  font-weight: 700;
}

.listing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.listing-card { min-inline-size: 0; }

.listing-card-link {
  display: block;
  min-inline-size: 0;
  border-radius: var(--radius-image);
  color: var(--ink);
  text-decoration: none;
}

.listing-card-link:focus-visible { outline-offset: 4px; }

.listing-thumb, .listing-placeholder {
  display: flex;
  inline-size: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-image);
  object-fit: cover;
  /* Faint ring + shadow so light photos separate from the cream page (FB-style). */
  box-shadow: inset 0 0 0 1px rgba(46, 42, 37, 0.08), 0 1px 3px rgba(46, 42, 37, 0.07);
}

.listing-placeholder {
  align-items: center;
  justify-content: center;
  font-size: 2.6rem;
}

.placeholder-tint-0 { background: var(--placeholder-0); }
.placeholder-tint-1 { background: var(--placeholder-1); }
.placeholder-tint-2 { background: var(--placeholder-2); }
.placeholder-tint-3 { background: var(--placeholder-3); }
.placeholder-tint-4 { background: var(--placeholder-4); }

.listing-card-body { padding: var(--space-2) 2px 0; }

.listing-price, .listing-card h3, .seller-line, .board-context-line, .card-meta-line { margin: 0; }
/* FB Marketplace type scale: 17px bold price, 15px regular title, 13px muted
   church/city; tight 1.3 line-heights, no extra gaps between the lines. */
.listing-card-body { display: grid; gap: 1px; padding-block-start: var(--space-2); line-height: 1.3; }
.card-meta-line { display: flex; align-items: center; gap: var(--space-2); margin-block-start: var(--space-1); min-inline-size: 0; color: var(--muted); font-size: 0.8125rem; }
.card-church { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-meta-line .verified { flex: 0 0 auto; }
.card-city { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 0.8125rem; }
/* .card-meta-line keeps its margin-block-start from above; only .card-city is zeroed here.
   (A shared margin:0 rule used to cancel the title-to-church gap.) */
.card-city { margin: 0; }
/* Board pages hide the church line; keep the same title gap above the city. */
.listing-card-body h3 + .card-city { margin-block-start: var(--space-1); }

.listing-price {
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.25;
}

.listing-price.free, .listing-detail-price.free { color: var(--accent); }

.listing-card h3 {
  overflow: hidden;
  margin-block-start: var(--space-1);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.seller-line {
  display: flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.45;
}

.seller-line > span:first-child {
  min-inline-size: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.board-context-line {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.listing-rows {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--card);
}

.listing-row + .listing-row { border-block-start: 1px solid var(--line); }

.listing-row-link {
  display: flex;
  align-items: baseline;
  gap: 14px;
  min-inline-size: 0;
  padding: 13px var(--space-4);
  color: var(--ink);
  text-decoration: none;
}

.listing-row-link:focus-visible { outline-offset: -3px; }

.listing-row h3 {
  margin-block-end: 2px;
  font-size: 0.9375rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.listing-row p {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-block-end: 0;
  color: var(--muted);
  font-size: 0.85rem;
}

.listing-row time {
  flex: 0 0 auto;
  margin-inline-start: auto;
  color: var(--muted);
  font-size: 0.8rem;
  white-space: nowrap;
}

.board-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: var(--space-3) var(--space-4);
  margin-block-start: var(--space-5);
  padding: var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  background: var(--card);
}

.back-link + .board-card { margin-block-start: 0; }

.board-icon-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  inline-size: 58px;
  block-size: 58px;
  border-radius: var(--radius-card);
  background: var(--soft-accent);
}

.board-icon-tile img { inline-size: 48px; block-size: 48px; object-fit: contain; }

.board-copy h1 {
  display: flex;
  align-items: center;
  gap: 5px;
  min-inline-size: 0;
  margin-block-end: 3px;
  font-size: 1.45rem;
  font-weight: 700;
}

.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board-copy p { margin: 0; color: var(--muted); font-size: 0.85rem; }

.board-post-button {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 40px;
  border: 1.5px solid var(--accent);
  border-radius: var(--radius-pill);
  color: var(--accent);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
}

.campus-pills { padding-block-start: var(--space-3); }
.quiet-pill { min-block-size: 34px; padding-block: 6px; color: var(--muted); font-size: 0.85rem; }

.empty-state {
  margin-block-start: 28px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  background: var(--card);
}

.empty-state h2 { margin-block-end: 7px; font-size: 1.05rem; }
.empty-state p { color: var(--muted); }
.empty-line { margin-block-start: 28px; color: var(--muted); }

.my-listings-intro { max-inline-size: var(--measure-prose); }
.my-listings-groups { display: grid; gap: var(--space-8); margin-block-start: var(--space-8); }
.my-listings-section > h2 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-block-end: var(--space-3);
  font-size: 1.05rem;
}
.my-listings-count { color: var(--muted); font-size: 0.85rem; font-weight: 400; }
.my-listings-list { display: grid; gap: var(--space-3); }
.my-listing-entry {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--card);
}
.my-listing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding: 0 var(--space-4) var(--space-3);
}
.my-listing-actions form { display: inline-flex; }
.my-listing-actions .secondary-button { min-block-size: var(--touch-target); }

.settings-section {
  padding-block: var(--space-6);
  border-block-start: 1px solid var(--line);
}
.settings-section:first-of-type { padding-block-start: 0; border-block-start: 0; }
.settings-section h2 { margin-block-end: var(--space-2); font-size: 1.05rem; }
.settings-section > p { margin-block-end: var(--space-3); color: var(--muted); }
.settings-form { margin-block-start: var(--space-4); }
.settings-form > .primary-button { min-block-size: var(--touch-target); }
.settings-quiet-link { padding-inline: 0; }
.name-format-options { display: grid; gap: var(--space-2); }
.name-format-option {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-block-size: var(--touch-target);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-image);
  cursor: pointer;
}
.name-format-option:has(input:checked) { border-color: var(--accent); background: var(--soft-accent); }
.name-format-option span { min-inline-size: 0; }
.name-format-option strong, .name-format-option small { display: block; }
.name-format-option small { margin-block-start: var(--space-1); color: var(--muted); font-size: 0.9rem; }
.settings-delete { padding-block-end: 0; }

.location-intro { max-inline-size: var(--measure-prose); }
/* Compact wrap-chips: content-sized, several per row, name never wraps.
   Cities that already have churches get the soft-accent treatment so the
   places with life stand out at a glance. */
.location-city-list, .location-church-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-2);
  margin: var(--space-6) 0 0;
  padding: 0;
  list-style: none;
}
.location-city-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-block-size: var(--touch-target);
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: var(--card);
  color: var(--ink);
  font-size: 0.9rem;
  white-space: nowrap;
  text-decoration: none;
}
.location-city-link.has-churches {
  border-color: var(--accent);
  background: var(--soft-accent);
  font-weight: 700;
}
.location-city-count, .location-church-count {
  flex: 0 0 auto;
  padding: 1px var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--accent);
  color: var(--card);
  font-size: 0.72rem;
  font-weight: 700;
}
.location-churches { margin-block-start: var(--space-8); }
.location-churches h2 { margin-block-end: var(--space-3); font-size: 1.05rem; }
.location-church-list { grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)); margin-block-start: 0; }
.location-church-list li {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--card);
}
.location-church-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-block-size: var(--touch-target);
  padding: var(--space-3) var(--space-4);
  color: var(--ink);
  text-decoration: none;
}
.location-church-name { display: flex; align-items: center; gap: var(--space-1); }
.location-listings-label { margin-block: var(--space-8) 0; }
.location-listings-label + .listing-section h2 { margin-block-start: var(--space-3); }
.location-empty { max-inline-size: var(--measure-prose); }
.location-empty p { margin-block-end: 0; }
.location-cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  max-inline-size: var(--measure-prose);
  margin-block-start: var(--space-8);
  padding: var(--space-5);
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  background: var(--soft-accent);
}
.location-cta h2 { margin-block-end: var(--space-1); font-size: 1.05rem; }
.location-cta p { margin-block-end: 0; color: var(--muted); }
.location-cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.location-cta-browse { display: inline-flex; align-items: center; min-block-size: var(--touch-target); }

.page-intro { margin-block-start: var(--space-6); }
.page-intro h1 { margin-block-end: 6px; font-size: 1.45rem; }
.page-intro p { color: var(--muted); }

.church-search { margin-block: var(--space-5) 26px; }
.search-with-button { display: flex; align-items: center; gap: 10px; }
.search-with-button input[type="search"] { flex: 1; min-inline-size: 0; }
.church-results-section h2 { font-size: 1.05rem; }

.church-results {
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--card);
  list-style: none;
}

.church-result { padding: 13px var(--space-4); }
.church-result + .church-result { border-block-start: 1px solid var(--line); }
.church-result-summary { color: var(--muted); font-size: 0.85rem; }
.church-result-name { display: flex; align-items: center; gap: 5px; color: var(--ink); font-size: 0.9375rem; }
.church-result-summary > span { margin-inline-end: var(--space-2); }
.church-result > form { margin-block-start: 6px; }

.campus-chooser { margin-block-start: var(--space-2); }
.campus-chooser summary { cursor: pointer; color: var(--accent); font-weight: 700; }
.campus-chooser ul { margin-block-end: 0; padding-inline-start: var(--space-5); }
.campus-chooser li { margin-block-start: 10px; }
.campus-chooser form { display: inline-block; }

.listing-detail { max-inline-size: 900px; margin-block-start: var(--space-6); }
.eyebrow { margin-block-end: var(--space-2); color: var(--muted); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.price-status-line { display: flex; align-items: center; gap: 10px; }
.listing-detail-price { margin: 0; font-size: 1.45rem; font-weight: 700; }
.listing-detail h1 { margin: 6px 0 var(--space-2); font-size: clamp(1.5rem, 4vw, 2.15rem); }
.listing-byline { display: flex; align-items: center; gap: 5px; color: var(--muted); }

.status {
  display: inline-flex;
  align-items: center;
  min-block-size: 26px;
  padding: 3px 9px;
  border-radius: var(--radius-image);
  background: var(--soft-accent);
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 700;
}

.listing-detail .status.sold {
  min-block-size: var(--space-8);
  padding: var(--space-1) var(--space-3);
  font-size: 0.9rem;
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  margin-block-end: var(--space-4);
  min-block-size: var(--touch-target);
  color: var(--muted);
  font-weight: 700;
  text-decoration: none;
}
.back-link:hover { color: var(--ink); text-decoration: underline; }

.listing-photos { margin-block: 22px; }
.listing-hero-placeholder {
  inline-size: 100%;
  max-inline-size: 420px;
  aspect-ratio: 1;
  margin-block: 22px;
  border-radius: var(--radius-image);
  font-size: 5rem;
}
.listing-photos-track {
  display: flex;
  gap: var(--space-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-radius: var(--radius-image);
}
.listing-photos-track::-webkit-scrollbar { display: none; }
.listing-photo-slide { flex: 0 0 100%; margin: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.listing-photo-slide img { display: block; inline-size: 100%; max-block-size: 720px; border-radius: var(--radius-image); object-fit: cover; }
.listing-photo-slide figcaption { margin-block-start: 6px; color: var(--muted); font-size: 0.85rem; }
.listing-photos-nav { display: flex; align-items: center; justify-content: center; gap: var(--space-3); margin-block-start: 10px; }
.listing-photos-counter { min-inline-size: 4ch; text-align: center; color: var(--muted); font-size: 0.9rem; font-variant-numeric: tabular-nums; }
.carousel-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 40px;
  block-size: 40px;
  border: 1.5px solid var(--control-line);
  border-radius: 50%;
  background: var(--card);
  color: var(--ink);
  font-size: 1.45rem;
  line-height: 1;
}
.carousel-button:disabled { opacity: 0.4; }

.listing-description { max-inline-size: 75ch; overflow-wrap: anywhere; }
.listing-description p { margin-block-end: 1em; }

.listing-meta { margin-block: var(--space-6); padding-block: 15px; border-block: 1px solid var(--line); }
.listing-meta > div { display: flex; gap: var(--space-2); margin-block: 5px; }
.listing-meta dt { color: var(--muted); }
.listing-meta dd { margin: 0; }

.owner-actions { margin-block-start: 28px; padding: 18px; border-radius: var(--radius-card); background: var(--soft-accent); }
.owner-actions h2 { margin-block-end: var(--space-3); font-size: 1rem; }
.action-buttons { display: flex; flex-wrap: wrap; gap: 9px; }
.action-buttons form { display: inline-flex; }

.photo-row { padding-block: 14px; border-block-end: 1px solid var(--line); }
.photo-row:last-child { border-block-end: 0; }
.photo-row .field:last-child { margin-block-end: 0; }
.current-photo-row > img, .current-photo-row > .listing-placeholder { inline-size: 120px; block-size: 120px; margin-block-end: var(--space-3); }
.current-photo-hint { margin-block-end: var(--space-2); }
.current-photo-row { cursor: grab; }
.current-photo-row.is-dragging { opacity: 0.62; cursor: grabbing; }
.current-photo-row.drop-before { box-shadow: inset 0 var(--space-1) 0 var(--accent); }
.current-photo-row.drop-after { box-shadow: inset 0 calc(var(--space-1) * -1) 0 var(--accent); }
.current-photo-fields { min-inline-size: 0; }
.photo-drag-label {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  margin-block-end: var(--space-2);
  color: var(--muted);
  font-size: 0.8rem;
}
.photo-drag-label svg { flex: 0 0 var(--space-5); }
.current-photo-controls { display: flex; gap: var(--space-2); margin-block-start: var(--space-2); }
.photo-order-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: var(--touch-target);
  block-size: var(--touch-target);
  border: 1.5px solid var(--control-line);
  border-radius: 50%;
  background: var(--card);
  color: var(--ink);
  font-weight: 700;
}
.photo-order-button:disabled { opacity: 0.35; }
.photo-order-button:not(:disabled):active { background: var(--soft-accent); }
.new-photo-row input[type="file"] { padding: 7px; }

.photo-capture > .hint { margin-block: 0 var(--space-4); }
.photo-capture-status { margin-block: var(--space-3) 0; }
/* Two equal, content-sized buttons; never stretched across the card (STYLE_GUIDE section 6). */
.photo-capture-buttons { display: grid; grid-template-columns: repeat(2, minmax(180px, 220px)); gap: var(--space-3); }
.photo-capture-button { gap: var(--space-2); min-block-size: 48px; font-size: 1rem; }
@media (max-width: 419px) {
  .photo-capture-buttons { grid-template-columns: minmax(0, 220px); }
}
.visually-hidden-input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; overflow: hidden; pointer-events: none; }

.photo-capture-message { margin-block: var(--space-2) 0; color: var(--danger); font-size: 0.9rem; }
.photo-capture-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: var(--space-3);
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.photo-tile { display: flex; flex-direction: column; gap: 6px; }
.photo-tile-frame { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius-image); background: var(--soft-accent); }
.photo-tile-frame img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.photo-tile-cover {
  position: absolute;
  inset-block-start: 6px;
  inset-inline-start: 6px;
  padding: 2px var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--accent);
  color: var(--card);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.photo-tile-caption { min-block-size: 36px; padding: 6px var(--space-2); font-size: 0.85rem; }
.photo-tile-controls { display: flex; justify-content: space-between; gap: var(--space-1); }
.photo-tile-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: var(--touch-target);
  block-size: var(--touch-target);
  border: 1.5px solid var(--control-line);
  border-radius: 50%;
  background: var(--card);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1;
}
.photo-tile-button:disabled { opacity: 0.35; }
.photo-tile-remove { color: var(--danger); }

@media (max-width: 479px) {
  .listing-row-link { align-items: flex-start; }
  .listing-row time { padding-block-start: 2px; }
  .search-with-button { align-items: stretch; flex-direction: column; }
}

@media (min-width: 640px) {
  .location-cta { flex-direction: row; align-items: center; justify-content: space-between; }

  .listing-photos-many .listing-photos-track {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    gap: 18px;
    overflow: visible;
    scroll-snap-type: none;
  }
  .listing-photos-many .listing-photo-slide { flex: initial; }
  .listing-photos-many .listing-photos-nav { display: none; }

  .listing-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
    gap: var(--space-5);
  }
  .listing-grid > * { max-inline-size: 310px; }

  .listing-placeholder { font-size: 3.4rem; }
  .listing-price { font-size: 1.0625rem; }
  .listing-card h3 { font-size: 0.9375rem; }
  .seller-line { font-size: 0.8rem; }
  .board-context-line { font-size: 0.8rem; }

  .board-card { grid-template-columns: 58px minmax(0, 1fr) auto; padding: var(--space-5) 22px; }
  .board-post-button { grid-column: auto; border: 0; padding-inline: var(--space-1); }

  .new-photo-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
  }

  .current-photo-row {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }
}

@media (hover: hover) and (pointer: fine) {
  .location-city-link:hover, .location-church-link:hover { border-color: var(--accent); }
  .carousel-button:not(:disabled):hover, .photo-tile-button:not(:disabled):hover, .photo-order-button:not(:disabled):hover { background: var(--soft-accent); }
  .listing-row-link:hover { background: var(--soft-accent); }
  .board-post-button:hover { text-decoration: underline; text-underline-offset: 3px; }
  .campus-chooser summary:hover { text-decoration: underline; }
}

.location-city-link:active, .location-church-link:active { border-color: var(--accent-hover); }
.location-cta-browse:active { color: var(--accent-hover); }

/* Round 4: community boards, claims, admin */
.board-unclaimed { margin-block-start: 6px; color: var(--muted); font-size: 0.85rem; }
.board-claim-link { margin-inline-start: 6px; font-weight: 700; }
.add-church-line { margin-block-start: 18px; color: var(--muted); }
.add-church-link { margin-inline-start: var(--space-1); font-weight: 700; }
.admin-link { font-weight: 700; }
.admin-nav { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block: 0 var(--space-6); }
.table-scroll { overflow-x: auto; }
.admin-table { inline-size: 100%; border-collapse: collapse; font-size: 0.9rem; }
.admin-table th, .admin-table td { padding: 10px var(--space-2); border-block-end: 1px solid var(--line); text-align: start; vertical-align: top; }
.admin-table th { color: var(--muted); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; }
.admin-table tr.is-hidden td { opacity: 0.55; }
.admin-table .hint { display: block; margin: 2px 0 0; font-size: 0.78rem; }
.verified-status { color: var(--accent); }

/* Round 5: posting quality, preview, reports, and moderation */
.listing-form-section {
  margin-block-end: var(--space-6);
  padding: var(--space-4);
}

.listing-form-section > legend {
  padding-inline: var(--space-2);
  font-size: 1.05rem;
}

.listing-form-section .field:last-child { margin-block-end: 0; }
.form-subheading { margin-block: var(--space-2) var(--space-3); font-size: 0.9rem; }

.price-pill-group { gap: var(--space-2); margin-block-end: var(--space-4); }
.price-pill {
  position: relative;
  min-block-size: var(--touch-target);
  padding-inline: var(--space-4);
  border: 1.5px solid var(--control-line);
  border-radius: var(--radius-pill);
  background: var(--card);
  cursor: pointer;
}
.price-pill:has(input:checked) { border-color: var(--accent); background: var(--accent); color: var(--card); }
.price-pill:has(input:focus-visible) { box-shadow: var(--shadow-focus); }

.price-input-wrap {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border: 1.5px solid var(--control-line);
  border-radius: var(--radius-image);
  background: var(--card);
  inline-size: min(100%, 12ch);
}
.price-input-wrap:focus-within { border-color: var(--accent); box-shadow: var(--shadow-focus); }
.price-prefix { display: inline-flex; align-items: center; padding-inline: var(--space-3); color: var(--muted); font-weight: 700; }
.price-input-wrap input { min-inline-size: 0; border: 0; border-radius: 0; padding-inline-start: 0; }
.price-input-wrap input:focus { outline: 0; box-shadow: none; }

.listing-preview-panel {
  margin-block-end: var(--space-5);
  padding: var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-panel);
  background: var(--soft-accent);
}
.listing-preview-panel > h2 { margin-block-end: var(--space-3); font-size: 1rem; }
.listing-preview-card { inline-size: min(100%, 190px); }
.listing-preview-image-wrap { position: relative; }
.listing-preview-image-wrap > * { inline-size: 100%; }
.listing-preview-image-wrap [hidden] { display: none; }
.listing-form-nudge {
  margin-block: 0 var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-card);
  background: var(--soft-accent);
  color: var(--accent);
  font-size: 0.9rem;
}
.listing-publish-button { min-block-size: var(--touch-target); }
.report-listing-link { margin-block-start: var(--space-8); font-size: 0.85rem; }

.report-reason-list { display: grid; gap: var(--space-2); }
.report-reason-list label { display: flex; align-items: center; gap: var(--space-2); min-block-size: var(--touch-target); }

.admin-card-list { display: grid; gap: var(--space-4); }
.admin-moderation-card { padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--card); }
.admin-moderation-card.is-resolved { opacity: 0.7; }
.admin-moderation-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.admin-moderation-card h2 { margin-block-end: var(--space-3); font-size: 1.05rem; }
.admin-detail-list { margin-block-end: var(--space-4); }
.admin-detail-list > div { display: grid; grid-template-columns: minmax(90px, 0.25fr) 1fr; gap: var(--space-3); margin-block: var(--space-2); }
.admin-detail-list dt { color: var(--muted); }
.admin-detail-list dd { overflow-wrap: anywhere; }
.admin-filter-row { margin-block-end: var(--space-5); }
.admin-listing-thumb { display: flex; inline-size: 64px; block-size: 64px; align-items: center; justify-content: center; border-radius: var(--radius-image); object-fit: cover; }
.admin-row-actions { display: grid; gap: var(--space-2); min-inline-size: 220px; }
.admin-row-actions form { margin: 0; }
.admin-inline-form { display: grid; gap: var(--space-2); }
.admin-inline-form select, .admin-inline-form input[type="text"] { min-inline-size: 180px; }

@media (min-width: 640px) {
  .listing-form-section { padding: var(--space-5); }
  .listing-preview-panel { padding: var(--space-5); }
}
.admin-merge { margin-block-start: 34px; padding-block-start: 22px; border-block-start: 1px solid var(--line); }
.admin-merge h2 { margin-block-end: 6px; font-size: 1.05rem; }
.claim-list { margin: 0; padding: 0; list-style: none; }
.claim-card { padding: var(--space-4); margin-block-end: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--card); }
.claim-note { margin: 10px 0 0; padding-inline-start: var(--space-3); border-inline-start: 3px solid var(--line); color: var(--muted); white-space: pre-wrap; }
.claim-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-block-start: var(--space-3); }
.claim-approve { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.claim-approve input[type="text"] { inline-size: 220px; max-inline-size: 100%; }

/* Messaging */
.listing-conversation-action, .conversation-start, .conversation-sign-in-prompt { margin-block: var(--space-6); }
.conversation-start { max-inline-size: var(--measure-form); }
.conversation-start-hint { margin-block: var(--space-3) 0; }
.conversation-start-hint a { color: var(--accent); }

.conversation-header h1 { margin-block-end: var(--space-2); font-size: 1.45rem; overflow-wrap: anywhere; }
.conversation-header h1 a { color: var(--ink); }
.conversation-header > p { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); color: var(--muted); }
.scam-banner {
  margin-block: var(--space-5);
  padding: var(--space-4);
  border-radius: var(--radius-card);
  background: var(--soft-accent);
  font-size: 1rem;
}
.scam-banner p { margin: 0; }
.scam-banner a { color: var(--accent); font-weight: 700; }

.message-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-block: var(--space-5);
  max-block-size: 60vh;
  overflow-y: auto;
  padding-inline: var(--space-1);
}
.message { display: flex; flex-direction: column; max-inline-size: 80%; }
.message-own { align-self: flex-end; align-items: flex-end; }
.message-other { align-self: flex-start; align-items: flex-start; }
.message-bubble {
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-panel);
}
.message-own .message-bubble {
  background: var(--accent);
  color: var(--card);
  border-end-end-radius: 0;
}
.message-other .message-bubble {
  background: var(--bg);
  color: var(--ink);
  border-end-start-radius: 0;
}
.message-sender { margin-block-end: var(--space-1); color: var(--muted); font-size: 0.8rem; }
.message-meta { margin-block-start: var(--space-1); color: var(--muted); font-size: 0.72rem; }
.message-body { white-space: pre-line; overflow-wrap: anywhere; }
.chat-date-separator {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-block: var(--space-2);
  color: var(--muted);
  font-size: 0.8rem;
}
.chat-date-separator::before,
.chat-date-separator::after {
  content: "";
  flex: 1;
  border-block-start: 1px solid var(--line);
}
.chat-empty-line { padding-block: var(--space-6); color: var(--muted); text-align: center; }
.conversation-composer { margin-block-start: var(--space-6); padding-block-start: var(--space-5); border-block-start: 1px solid var(--line); }
.chat-composer { display: flex; align-items: flex-end; gap: var(--space-2); }
.chat-composer-input {
  flex: 1;
  min-block-size: var(--touch-target);
  max-block-size: 144px;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-panel);
  resize: none;
}
.chat-send-button {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: var(--touch-target);
  block-size: var(--touch-target);
  border: 0;
  border-radius: 50%;
  background: var(--accent);
  color: var(--card);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}
.chat-send-button:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
@media (hover: hover) and (pointer: fine) {
  .chat-send-button:hover { background: var(--accent-hover); }
}
@media (prefers-reduced-motion: no-preference) {
  .message-list { scroll-behavior: smooth; }
}
.conversation-notice { margin-block-end: var(--space-3); color: var(--muted); }
.conversation-quiet-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin-block-start: var(--space-5); }
.conversation-quiet-actions form { display: inline-flex; }

.messages-intro { max-inline-size: var(--measure-prose); }
.inbox-list { margin-block-start: var(--space-6); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--card); }
.inbox-row { display: flex; align-items: center; gap: var(--space-3); min-block-size: var(--touch-target); padding: var(--space-3) var(--space-4); color: var(--ink); text-decoration: none; }
.inbox-row + .inbox-row { border-block-start: 1px solid var(--line); }
.inbox-row-copy { display: grid; min-inline-size: 0; }
.inbox-row-copy > span, .inbox-row-copy > strong { overflow-wrap: anywhere; }
.inbox-row-copy small { display: flex; align-items: center; gap: var(--space-1); color: var(--muted); font-size: 0.85rem; }
.inbox-row time { flex: 0 0 auto; margin-inline-start: auto; color: var(--muted); font-size: 0.8rem; white-space: nowrap; }
.unread-dot { flex: 0 0 var(--space-2); inline-size: var(--space-2); block-size: var(--space-2); border-radius: var(--radius-pill); background: var(--accent); }

.blocked-user-list { display: grid; gap: var(--space-2); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.blocked-user-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.blocked-user-list form { display: inline-flex; }
.admin-message-list { max-inline-size: var(--measure-prose); }

@media (pointer: coarse) {
  .carousel-button,
  .photo-tile-button {
    inline-size: var(--touch-target);
    block-size: var(--touch-target);
  }

  /* STYLE_GUIDE section 7: every interactive element is at least 44px tall on touch. */
  .pill, .quiet-pill,
  .primary-button, .secondary-button, input[type="submit"],
  .board-post-button,
  .auth-nav a, .quiet-button,
  .filter-panel summary,
  .footer-links a,
  .mobile-church-line a,
  .sidebar-church-link, .sidebar-link, .sidebar-find-church, .sidebar-change a {
    min-block-size: var(--touch-target);
  }

  .inbox-row,
  .conversation-header h1 a,
  .scam-banner a,
  .conversation-start-hint a {
    min-block-size: var(--touch-target);
  }

  /* Text links need inline-flex so the taller tap area centers the label. */
  .footer-links a,
  .mobile-church-line a,
  .sidebar-change a {
    display: inline-flex;
    align-items: center;
  }

  .conversation-header h1 a,
  .scam-banner a,
  .conversation-start-hint a {
    display: inline-flex;
    align-items: center;
  }

  .chat-send-button {
    inline-size: var(--touch-target);
    block-size: var(--touch-target);
  }
}
