/* A working collection beside its conversation; the guest reads a field guide. */
.editor-shell:has(.map-creator) { max-width: 1480px; }
.map-creator { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.map-creator:has(.planning-assistant) { grid-template-columns: minmax(0, 1fr) 23rem; }
.map-creator > .planning-assistant { grid-column: 2; grid-row: 1; }
.map-creator__canvas { grid-column: 1; grid-row: 1; min-width: 0; }
.map-creator .placement-ledger { grid-template-columns: 1fr; gap: 1.2rem; padding: 1.2rem; }
.map-creator .placement-ledger > .public-map__map-stage { height: 340px; }
.map-creator .placement-ledger__rail { height: auto; max-height: 30rem; }
.map-creator .planning-assistant__composer textarea { display: block; width: 100%; min-height: 6rem; max-height: 10rem; padding: 0.7rem; border: 0; background: transparent; resize: vertical; font-size: 1rem; line-height: 1.5; }
.map-candidates { display: grid; gap: 0.65rem; padding: 0; margin: 0.9rem 0 0; list-style: none; }
.map-candidates li { display: grid; gap: 0.3rem; padding: 0.85rem; background: white; border: 1px solid var(--line); border-radius: 0.5rem; }
.map-candidates strong { font-size: 0.85rem; }
.map-candidates span, .map-candidates small { font-size: 0.72rem; color: var(--ink-soft); line-height: 1.5; }
.map-candidates .text-button { margin: 0.3rem 0 0; min-height: 2.75rem; }
.map-guest-sharing { display: grid; grid-template-columns: 1fr minmax(18rem, 0.8fr); gap: 2rem; padding: 2rem; margin-block: 2rem; border: 1px solid #d5c9b5; border-radius: 0.75rem; background: #fcf9f2; }
.map-guest-sharing h2 { margin: 0; font-family: var(--font-heading); font-size: 2.4rem; font-weight: 500; }
.map-guest-sharing p:not(.eyebrow) { max-width: 36rem; font-size: 0.85rem; line-height: 1.7; color: var(--ink-soft); }
.map-guest-sharing__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-content: center; align-items: center; min-width: 0; }
.map-guest-sharing__actions .field { width: 100%; }
.map-guest-sharing__actions input { width: 100%; padding: 0.7rem; border: 1px solid var(--line-strong); border-radius: 0.4rem; background: white; font-size: 0.85rem; }
.curated-map__masthead { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.2rem max(1.25rem, calc((100% - 1120px) / 2)); border-bottom: 1px solid #ded9cb; background: #faf8f2; }
.curated-map__masthead a { color: var(--ink); font-family: var(--font-heading); font-size: 1.65rem; text-decoration: none; }
.curated-map__masthead span { color: #756b5c; font-size: 0.67rem; text-transform: uppercase; letter-spacing: 0.12em; }
.discover-page.curated-map { --discover-panel: #fffdf9; --discover-fg: #25382f; --discover-muted: #687469; --discover-line: #dddcd1; background: #faf8f2; padding-bottom: 1px; }
.discover-page.curated-map .public-map__header { padding-block: 3.5rem 2.5rem; margin-bottom: 0; }
.discover-page.curated-map .public-map__header h1 { max-width: 850px; margin-top: 1rem; font-size: clamp(3rem, 6vw, 5.8rem); line-height: 1; letter-spacing: -0.035em; }
.curated-map__signature { display: flex; align-items: center; gap: 0.65rem; color: #687469; font-size: 0.8rem; }
.curated-map__initials { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid #bfc7bb; border-radius: 50%; font-size: 0.65rem; letter-spacing: 0.04em; }
.discover-page.curated-map .public-map__cover { height: clamp(180px, 32vw, 380px); object-fit: cover; border-radius: 0.3rem; }
.discover-page.curated-map .public-map__cover-fallback { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 2rem; height: auto; min-height: 150px; padding: 2rem 3rem; border: 1px solid #bdc8bb; border-radius: 0.3rem; color: #f7f5e9; background: #294b3e; overflow: hidden; }
.discover-page.curated-map .public-map__cover-fallback span { flex: 0 0 80px; width: 80px; height: 80px; border: 1px solid #c5d3be80; border-radius: 50%; background: transparent; box-shadow: 0 0 0 16px #c5d3be18, 0 0 0 32px #c5d3be0d; }
.discover-page.curated-map .public-map__cover-fallback p { margin: 0; font-family: var(--font-heading); font-size: clamp(1.65rem, 3vw, 2.8rem); font-weight: 400; text-align: right; }
.curated-map__collection-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.4rem; }
.curated-map__collection-heading h2 { margin: 0; font-family: var(--font-heading); font-size: clamp(2rem, 3vw, 3rem); font-weight: 500; }
.curated-map__collection-heading > p { color: #687469; font-size: 0.8rem; white-space: nowrap; }
.curated-map__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.curated-map__filters a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.55rem 1rem; border: 1px solid #cbd0c4; border-radius: 2rem; color: #294b3e; font-size: 0.8rem; text-decoration: none; }
.curated-map__filters a[aria-current="page"] { background: #294b3e; color: white; border-color: #294b3e; }
.curated-map .public-places__layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); height: min(720px, 80vh); gap: 1.5rem; }
.curated-map .public-places__rail .public-place-card { padding: 1.4rem; border-radius: 0.3rem; background: #fffdf9; }
.curated-map .public-places__rail .public-place-card h3 { font-family: var(--font-heading); font-size: 1.75rem; font-weight: 500; line-height: 1.15; }
.curated-map .public-place-card__note { margin-block: 0.7rem; font-style: normal; font-size: 0.9rem; }
.curated-map .public-place-card address { font-size: 0.78rem; }
.curated-map .public-place-details__prompt { font-size: 0.68rem; }
.curated-map__directions { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: 0.6rem; color: #294b3e; font-size: 0.8rem; text-underline-offset: 0.3rem; }
.curated-map__closing { width: min(1120px, calc(100% - 3rem)); margin: 3rem auto; padding-block: 2rem; text-align: center; border-top: 1px solid #d4d8cb; color: #687469; }
.curated-map__closing span { color: #9b7948; font-size: 2rem; }
.curated-map__closing p { font-family: var(--font-heading); font-size: 1.7rem; }
@media (max-width: 900px) {
  .map-creator:has(.planning-assistant) { display: flex; flex-direction: column; }
  .map-creator > * { width: 100%; }
  .map-creator .placement-ledger__rail { max-height: none; }
  .map-creator .placement-list { overflow: visible; }
  .map-guest-sharing { grid-template-columns: 1fr; gap: 1rem; padding: 1.5rem; }
  .curated-map .public-places__layout { display: flex; flex-direction: column; height: auto; }
  .curated-map .public-places__map { position: sticky; top: 0; z-index: 5; flex-shrink: 0; height: var(--mobile-map-height); }
  .curated-map .public-places__rail { height: auto; overflow: visible; padding: 0; }
  .discover-page.curated-map .public-map__header { padding-block: 2rem; }
  .discover-page.curated-map .public-map__cover-fallback { padding: 1.5rem; min-height: 130px; }
  .discover-page.curated-map .public-map__cover-fallback span { flex-basis: 48px; height: 48px; }
  .map-creator .planning-assistant__starters { flex-wrap: wrap; overflow: visible; }
}
@media (max-width: 600px) {
  .map-creator .placement-ledger { padding: 0.8rem; }
  .map-creator .placement-ledger > .public-map__map-stage { height: 270px; }
  .curated-map__collection-heading { align-items: start; }
  .curated-map__collection-heading h2 { font-size: 2rem; }
  .curated-map__masthead span { max-width: 10rem; text-align: right; line-height: 1.5; }
  .editor-shell:has(.map-creator) { padding-bottom: 6rem; }
}
