/*
 * Public map pages: agendas#index (search + Upcoming Meetings), agendas#show and
 * items#show (agenda sheet header + item list), pages#about. Uses tokens from application.css.
 */

/* ---------- Search pill (index) ---------- */
.search { margin-top: var(--space-2); }
.search .icon { color: var(--color-text); }
.search input::placeholder { color: var(--color-brand); opacity: 0.85; }
.search input::-webkit-search-cancel-button { display: none; }
.search__nearby { font-size: var(--text-md); padding: var(--space-2) 0 var(--space-2) var(--space-2); }
.search__nearby.is-busy { opacity: 0.5; }
.search__nearby.is-error { color: var(--color-danger); }
.search__empty, .empty-state {
  margin: var(--space-3) 0 0; font-size: var(--text-sm); color: var(--color-text-muted);
}
.upcoming { display: block; }
.upcoming[busy] { opacity: 0.6; transition: opacity 0.2s; }

/* ---------- Agenda header (show) ---------- */
.sheet__header.agenda-header {
  position: sticky; top: 0; z-index: 1;
  margin: 0 calc(-1 * var(--space-5)); padding: var(--space-2) var(--space-4) var(--space-4);
  background: var(--color-bg);
}
.sheet__header .share-button { grid-column: 1; justify-self: start; }
.agenda-header__address {
  display: inline-block; margin-top: var(--space-1);
  font-size: var(--text-md); color: var(--color-text-muted); text-decoration: underline;
}
.share-button {
  flex: none; display: flex; flex-direction: column; align-items: center; gap: var(--space-1);
  padding: 0; border: 0; background: none; color: var(--color-text-muted); cursor: pointer;
  font: inherit; font-size: var(--text-sm);
}
.share-button[hidden] { display: none; }
.share-button .icon-button { color: var(--color-text); }

/* ---------- Agenda items ---------- */
.agenda-items__header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); }
.agenda-items__header .section-title { font-weight: var(--weight-regular); margin-top: var(--space-3); }
.agenda-items__actions { display: inline-flex; align-items: center; gap: var(--space-4); }
.agenda-items__pdf {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--text-md); color: var(--color-text-muted);
}
.agenda-items__calendar { display: inline-flex; color: var(--color-text-muted); }
.agenda-items { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-2); }
.agenda-items .list-row--plain .list-row__title { text-transform: none; }
.agenda-items .list-row--pill { margin: var(--space-1) 0; }

/* Items expand in place (agenda_items_controller): full title + details on a gray card */
.agenda-item { border-radius: var(--radius-lg); scroll-margin-top: var(--agenda-header-height); /* below the sticky agenda header */ }
.agenda-item__details { display: none; padding: 0 var(--space-4) var(--space-4) var(--agenda-item-indent); }
.agenda-item--pill { --agenda-item-indent: calc(var(--space-4) + 40px + var(--space-4)); } /* aligns with the title, past the dot */
.agenda-item--plain { --agenda-item-indent: 0px; }
.agenda-item.is-expanded { background: var(--color-row); }
.agenda-item.is-expanded .agenda-item__details { display: block; }
.agenda-item.is-expanded .list-row { background: transparent; align-items: flex-start; }
.agenda-item.is-expanded .list-row__title,
.agenda-item.is-expanded .list-row__text--plain { white-space: normal; overflow: visible; }
.agenda-item--plain.is-expanded { padding: var(--space-2) var(--space-4) 0; }
.agenda-item--plain.is-expanded .list-row--plain { color: var(--color-text); }
.agenda-item__body { margin-top: var(--space-2); font-size: var(--text-md); color: var(--color-text); }
.agenda-item__body + .agenda-item__body { margin-top: var(--space-2); }
.agenda-item__address { margin-top: var(--space-2); font-size: var(--text-sm); color: var(--color-text-muted); }

/* ---------- About ---------- */
.about { max-width: var(--content-max); font-size: var(--text-md); }
.about h2 { font-size: var(--text-lg); font-weight: var(--weight-bold); margin: var(--space-5) 0 var(--space-2); }
.about p + p, .about ul { margin-top: var(--space-3); }
.about ul { padding-left: var(--space-5); list-style: disc; }
.about li + li { margin-top: var(--space-2); }
.about a:not(.button) { text-decoration: underline; }
.about .button { margin-top: var(--space-5); }

/* ---------- Ad card (sponsored_ads#show) ---------- */
.sheet--ad .sheet__header { padding-bottom: var(--space-2); }
.sheet--ad .sheet__subtitle {
  margin-top: 0; font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-text-muted);
}
.ad-card { text-align: left; }
/* margin-bottom collapses with .stack's gap, so it must exceed it to add space */
.ad-card__body { font-size: var(--text-md); line-height: var(--leading-normal); margin-bottom: var(--space-6); }
.ad-card__address {
  display: block; text-align: center;
  font-size: var(--text-md); color: var(--color-text-muted); text-decoration: underline;
}
