/* ===== /people page (people.js) =====
   Layout modeled directly on the real Cause Curated page (.bare-list-* classes, cards.css) --
   .people-body/.people-rows/.people-sidebar mirror .bare-list-body/.bare-list-rows/.bare-list-
   filters exactly (same flex row, same column widths/breakpoint), per direct request ("similar to
   the cause curated page"). Share section reuses the toolbar Share modal's own
   .share-list-item/.share-list-radio/.share-lists-* classes (misc.css) for the Saved Lists picker. */

/* A plain click/tap outline (not a keyboard focus ring -- every row/list-item/input on this page
   showed it simultaneously, confirmed live) that the rest of the app's own interactive components
   each individually suppress with their own `outline: none` -- .people-row and .people-share-
   email-input are new here and never got it; .share-list-item/.btn-primary (reused from misc.css)
   don't carry it either, so it's reset page-wide here instead of touching those shared classes,
   which other, unrelated callers still depend on as-is. */
.people-page button,
.people-page input {
  outline: none;
}

.people-page {
  display: block; /* overrides .cards-grid's default 2-column grid -- same fix .bare-list-page
                      itself needs, cards.css */
  padding-left: 40px;
  padding-bottom: 24px;
}

.people-body {
  display: flex;
  gap: clamp(24px, 4vw, 56px);
  align-items: flex-start;
}

.people-rows {
  flex: 1;
  min-width: 0;
  max-width: 760px;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.people-sidebar {
  flex-shrink: 0;
  width: clamp(260px, 28%, 360px);
  margin-top: 40px;
}

/* Rows deliberately shorter than Cause Curated's own .bare-list-row (96px avatar/20px padding) --
   per direct request ("the people cards should not be as tall") -- a smaller avatar and a single
   compact two-line text block instead of a tagline + tag pills + a separate View button. */
.people-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 14px;
  border: none; /* resets the native <button> default border -- these render as a plain row, not
                   a bordered control */
  border-radius: 10px;
  background: var(--hover-bg);
  cursor: pointer;
  text-align: left;
  font: inherit;
  transition: background 0.15s;
}
.people-row:hover { background: var(--border); }

.people-row-avatar {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface);
}
.people-row-avatar--letter {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);
}

.people-row-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.people-row-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
}
.people-row-sub {
  margin-top: 2px;
  font-size: 12px;
  color: var(--text-secondary);
}
.people-row-tag {
  margin-left: auto;
  flex-shrink: 0;
}

.people-share-email-input {
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--hover-bg);
  color: var(--text-primary);
  font-size: 14px;
  font-family: inherit;
  margin-bottom: 16px;
}
.people-share-email-input:focus {
  outline: none;
  border-color: var(--primary);
}

.people-share-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

/* Same breakpoint/stacking as .bare-list-body (cards.css) -- the sidebar drops below the row
   list instead of squeezing both columns too narrow to read. */
@media (max-width: 1200px) {
  .people-page {
    padding: 0 16px 24px;
  }
  .people-page .bare-list-hero {
    margin-left: -16px;
    margin-right: -16px;
  }
  .people-body {
    flex-direction: column;
  }
  .people-rows {
    max-width: 100%;
    margin-top: 20px;
  }
  .people-sidebar {
    width: 100%;
    margin-top: 0;
  }
}
