/* pro.perty.id — BuddyPress reskin (Facebook-Group-style layout, pid brand colors)
   Targets BP Nouveau's actual markup. Scoped to #buddypress so it never
   leaks into the rest of the site. */

#buddypress{
  --pid-avatar-ring:6px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--pid-ink);
  max-width:var(--pid-maxw);
  margin:0 auto;
}
#buddypress *{box-sizing:border-box}
#buddypress a{color:inherit;text-decoration:none}
#buddypress h1,#buddypress h2,#buddypress h3{font-family:inherit}

/* ---- Page title (H1 above #buddypress, e.g. "Canon R5 Owners") ----
   It's a sibling of .entry-content, not a descendant, so scope via body. */
body:has(#buddypress) .wp-block-post-title{
  max-width:var(--pid-maxw);
  margin:0 auto;
  padding:0 1.25rem;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:1.6rem;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--pid-ink);
}
/* Member profile: the name fills the row at full height; own-profile gear
   links ride the same line, pushed to the far edge. */
body:has(#buddypress .users-header) .wp-block-post-title,
body:has(#buddypress .members-header) .wp-block-post-title{
  display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;
  font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.05;margin-bottom:.4rem;
}
.pid-name-links{margin-left:auto;display:flex;gap:1rem;font-size:1rem;font-weight:600;letter-spacing:0;line-height:1.4}
.pid-name-links a{color:var(--pid-muted);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:.1rem}
.pid-name-links a:hover{color:var(--pid-accent);border-bottom-color:var(--pid-accent)}

/* ==================== Header / cover / avatar ====================
   Shared markup between group pages and member profile pages. */

#buddypress .groups-header,
#buddypress .members-header{
  padding:0 1.25rem;
}

#buddypress #cover-image-container{
  position:relative;
  border-radius:var(--pid-radius);
  overflow:hidden;
  background:linear-gradient(135deg,var(--pid-accent) 0%,var(--pid-accent-ink) 100%);
}

#buddypress #header-cover-image{
  height:220px;
  /* background-COLOR only: the `background:` shorthand here was wiping
     BuddyPress's inline background-image (same specificity, later in the
     cascade), so uploaded covers rendered as the container's red gradient.
     Transparent color keeps the gradient visible when no cover exists. */
  background-color:transparent;
  background-size:cover;
  background-position:center;
}

#buddypress #item-header-cover-image{
  position:relative;
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:1rem;
  padding:0 1.5rem 1.25rem;
  margin-top:-64px;
}

#buddypress #item-header-avatar{
  flex:0 0 auto;
}
#buddypress #item-header-avatar img,
#buddypress #item-header-avatar .avatar{
  width:128px;
  height:128px;
  border-radius:50%;
  border:var(--pid-avatar-ring) solid var(--pid-card);
  background:var(--pid-card);
  object-fit:cover;
  display:block;
}

#buddypress #item-header-content{
  flex:1 1 auto;
  min-width:200px;
  padding-bottom:.4rem;
}
#buddypress #item-header-content .group-status,
#buddypress #item-header-content .highlight{
  display:inline-block;
  background:var(--pid-card);
  color:var(--pid-ink);
  font-size:.78rem;
  font-weight:700;
  padding:.3rem .7rem;
  border-radius:999px;
  margin:0 .5rem .35rem 0;
}
#buddypress #item-header-content .group-status strong{font-weight:700}
#buddypress #item-header-content p.activity{
  display:inline-block;
  color:var(--pid-card);
  opacity:.9;
  font-size:.85rem;
  margin:0 0 .35rem;
}
#buddypress #item-header-content .group-description{display:none}

/* Header's own admin-list block: superseded by .pid-sidebar-card below */
#buddypress .groups-header #item-actions .moderators-lists{display:none}
#buddypress .groups-header .desc-wrap{display:none}

/* Join / leave / message buttons that BP renders in the header */
#buddypress #item-header-content .generic-button,
#buddypress .group-item-actions .generic-button{
  margin-top:.5rem;
}

/* ==================== Buttons (site-wide within BP) ==================== */

#buddypress .button,
#buddypress a.button,
#buddypress button.button,
#buddypress input[type=submit]{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  background:var(--pid-accent);
  color:#fff;
  border:none;
  border-radius:10px;
  padding:.55rem 1rem;
  font-size:.9rem;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  transition:background .15s ease;
}
#buddypress .button:hover,
#buddypress a.button:hover,
#buddypress button.button:hover{background:var(--pid-accent-ink);color:#fff}

/* Secondary / icon-only actions (comment, favorite, friend-add etc.) get a
   quieter treatment so the feed isn't wall-to-wall red buttons. */
#buddypress .activity-meta .button,
#buddypress .generic-button .button{
  background:var(--pid-bg);
  color:var(--pid-muted);
  padding:.4rem .7rem;
  font-size:.82rem;
}
#buddypress .activity-meta .button:hover,
#buddypress .generic-button .button:hover{background:var(--pid-line);color:var(--pid-ink)}

/* ==================== Tabs ==================== */

#buddypress nav.main-navs{
  margin:1.25rem 0 0;
  border-bottom:1px solid var(--pid-line);
}
#buddypress nav.main-navs ul{
  display:flex;
  gap:.35rem;
  list-style:none;
  margin:0;
  padding:0;
  flex-wrap:wrap;
}
#buddypress nav.main-navs li{margin:0}
#buddypress nav.main-navs li a{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.7rem 1rem;
  font-size:.92rem;
  font-weight:600;
  color:var(--pid-muted);
  border-bottom:3px solid transparent;
  margin-bottom:-1px;
}
#buddypress nav.main-navs li a:hover{color:var(--pid-ink)}
#buddypress nav.main-navs li.selected a,
#buddypress nav.main-navs li.current a{
  color:var(--pid-accent);
  border-bottom-color:var(--pid-accent);
}
#buddypress nav.main-navs .count{
  background:var(--pid-bg);
  color:var(--pid-muted);
  font-size:.75rem;
  font-weight:700;
  padding:.05rem .45rem;
  border-radius:999px;
}
#buddypress nav.main-navs li.selected .count,
#buddypress nav.main-navs li.current .count{
  background:var(--pid-accent-soft);
  color:var(--pid-accent-ink);
}

/* BP core (buddypress.css, not nouveau) ships a dark solid-fill active
   state for directory-level nav (.dir-navs, e.g. the Activity/Members
   directory filter tabs) that's a different rule set from the single
   Home/Members/Invite/Manage nav above. Neutralize its fills so both
   nav types render as the same red-underline pill style. */
#buddypress .bp-navs li.selected a,
#buddypress .bp-navs li.selected a:focus,
#buddypress .bp-navs li.selected a:hover,
#buddypress .bp-navs li.current a,
#buddypress .bp-navs li.current a:focus,
#buddypress .bp-navs li.current a:hover{
  background:transparent;
  color:var(--pid-accent);
}
#buddypress .bp-navs li:not(.current) a:focus,
#buddypress .bp-navs li:not(.current) a:hover,
#buddypress .bp-navs li:not(.selected) a:focus,
#buddypress .bp-navs li:not(.selected) a:hover{
  background:transparent;
  color:var(--pid-ink);
}

/* ==================== Two-column layout (group pages) ==================== */

#buddypress .bp-wrap.pid-group-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:1.5rem;
  align-items:start;
  padding:0 1.25rem;
  margin-top:1.5rem;
}
#buddypress .pid-group-main{min-width:0;grid-column:1;grid-row:1}
#buddypress .pid-group-main #item-body{margin-top:0}

@media (max-width:820px){
  #buddypress .bp-wrap.pid-group-layout{grid-template-columns:1fr}
  #buddypress .pid-group-sidebar{order:2}
}

/* ---- Sidebar ("About this group") ---- */

#buddypress .pid-group-sidebar{
  display:flex;
  flex-direction:column;
  gap:1rem;
  position:sticky;
  top:1rem;
  grid-column:2;
  grid-row:1;
}
#buddypress .pid-sidebar-card{
  background:var(--pid-card);
  border:1px solid var(--pid-line);
  border-radius:var(--pid-radius);
  padding:1.1rem 1.2rem;
}
#buddypress .pid-sidebar-card-title{
  font-size:.95rem;
  font-weight:800;
  margin:0 0 .7rem;
}
#buddypress .pid-sidebar-desc{
  font-size:.88rem;
  color:var(--pid-ink);
  line-height:1.55;
  margin:0 0 .9rem;
}
#buddypress .pid-sidebar-meta-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
#buddypress .pid-sidebar-meta-list li{
  display:flex;
  justify-content:space-between;
  font-size:.85rem;
  padding-top:.5rem;
  border-top:1px solid var(--pid-line);
}
#buddypress .pid-sidebar-meta-list li:first-child{border-top:none;padding-top:0}
#buddypress .pid-sidebar-meta-label{color:var(--pid-muted)}
#buddypress .pid-sidebar-meta-value{font-weight:600}

#buddypress .pid-sidebar-avatar-grid{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  list-style:none;
  margin:0;
  padding:0;
}
#buddypress .pid-sidebar-avatar-grid li{margin:0}
#buddypress .pid-sidebar-avatar-grid img{
  width:42px;
  height:42px;
  border-radius:50%;
  display:block;
}
/* bp_group_list_admins() renders its own nested <ul id="group-admins"> */
#buddypress #group-admins{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
#buddypress #group-admins li{margin:0}

/* ==================== Activity feed (used on group pages, member
   profiles, and the sitewide activity directory) ==================== */

#buddypress .activity-update-form,
#buddypress .bp-feedback{
  background:var(--pid-card);
  border:1px solid var(--pid-line);
  border-radius:var(--pid-radius);
  padding:1rem;
  margin:1rem 0;
}
#buddypress #whats-new-form{display:flex;gap:.75rem;align-items:flex-start}
#buddypress #whats-new-avatar img{width:42px;height:42px;border-radius:50%}
#buddypress #whats-new-content{flex:1 1 auto}
#buddypress #whats-new{
  width:100%;
  border:1px solid var(--pid-line);
  border-radius:12px;
  padding:.65rem .9rem;
  font-family:inherit;
  font-size:.92rem;
  resize:vertical;
}

#buddypress .activity-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.85rem;
}
#buddypress .activity-item{
  background:var(--pid-card);
  border:1px solid var(--pid-line);
  border-radius:var(--pid-radius);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  padding:1rem 1.1rem;
  display:flex;
  gap:.85rem;
}
#buddypress .activity-avatar img{
  width:44px;
  height:44px;
  border-radius:50%;
  display:block;
}
#buddypress .activity-content{flex:1 1 auto;min-width:0}
#buddypress .activity-header{font-size:.88rem;color:var(--pid-muted);line-height:1.5}
#buddypress .activity-header a{font-weight:700;color:var(--pid-ink)}
#buddypress .activity-header img.avatar{
  width:16px;height:16px;border-radius:50%;vertical-align:-2px;margin-right:.15rem;
}
#buddypress .activity-header .time-since{color:var(--pid-muted);font-size:.82rem}
#buddypress .activity-inner{
  font-size:.94rem;
  line-height:1.55;
  margin:.5rem 0 0;
  word-break:break-word;
}
#buddypress .activity-meta.action{
  display:flex;
  gap:.5rem;
  margin-top:.75rem;
  padding-top:.65rem;
  border-top:1px solid var(--pid-line);
}
#buddypress .activity-comments{
  margin-top:.75rem;
  padding-top:.75rem;
  border-top:1px solid var(--pid-line);
}
#buddypress .activity-comments .acomment-content{
  background:var(--pid-bg);
  border-radius:12px;
  padding:.5rem .75rem;
  font-size:.88rem;
}

/* ==================== Member directory / group members grid ==================== */

#buddypress #members-list,
#buddypress .members-list{
  list-style:none;
  margin:1rem 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:1rem;
}
#buddypress #members-list .item-entry,
#buddypress .members-list .item-entry{
  background:var(--pid-card);
  border:1px solid var(--pid-line);
  border-radius:var(--pid-radius);
  padding:1.1rem;
  text-align:center;
}
#buddypress #members-list .list-wrap,
#buddypress .members-list .list-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
}
#buddypress #members-list .item-avatar img,
#buddypress .members-list .item-avatar img{
  width:72px;
  height:72px;
  border-radius:50%;
}
#buddypress .member-name{font-size:.95rem;font-weight:700;margin:0}
#buddypress .item-meta.joined{color:var(--pid-muted);font-size:.8rem;margin:0}

/* ==================== Search / filter bar ==================== */

#buddypress .bp-search input[type=search],
#buddypress .bp-search input[type=text]{
  border:1px solid var(--pid-line);
  border-radius:10px;
  padding:.5rem .8rem;
  font-family:inherit;
  font-size:.88rem;
}
#buddypress select{
  border:1px solid var(--pid-line);
  border-radius:10px;
  padding:.5rem .8rem;
  font-family:inherit;
  font-size:.88rem;
  background:var(--pid-card);
}
