.vnc-community-surface {
  box-sizing: border-box;
  color: var(--text);
  margin-inline: auto;
  max-width: var(--max);
  min-width: 0;
  padding-inline: var(--s5);
  width: 100%;
}

.vnc-community-surface,
#buddypress,
#bbpress-forums {
  color: var(--text);
}

#buddypress.buddypress-wrap {
  box-sizing: border-box;
  margin-inline: auto;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

#buddypress :where(.bp-wrap, .item-body, .bp-navs, .component-navigation, .subnav-filters, .bp-pagination, .bp-list),
#bbpress-forums,
#bbpress-forums :where(.bbp-forums, .bbp-topics, .bbp-replies, fieldset.bbp-form) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

#buddypress :where(.bp-wrap, .item-body, .bp-list, .profile-fields),
#bbpress-forums :where(.bbp-forums, .bbp-topics, .bbp-replies, .bbp-forum-info, .bbp-topic-title, .bbp-reply-content) {
  overflow-wrap: anywhere;
}

.vnc-community-surface :where(a, button, input, select, summary, textarea),
#buddypress :where(a, button, input, select, summary, textarea),
#bbpress-forums :where(a, button, input, select, summary, textarea) {
  scroll-margin-top: calc(var(--header-h) + var(--s4));
}

.vnc-community-surface :where(a, button, input, select, summary, textarea):focus-visible {
  border-radius: var(--r-ctl);
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

#buddypress :where(a, button, input, select, summary, textarea):focus-visible,
#bbpress-forums :where(a, button, input, select, summary, textarea):focus-visible {
  border-radius: var(--r-ctl);
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

#buddypress #signup-form :is(input, select, textarea):focus-visible,
#buddypress #signup-form :is(input, select, textarea):focus,
#bbpress-forums form :is(input, select, textarea):focus-visible,
#bbpress-forums form :is(input, select, textarea):focus {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* W5-03-R1b: BuddyPress Nouveau zeroes the outline width on sign-up inputs; the indicator also travels on box-shadow, which it does not reset.
   Text-like controls only; checkboxes, radios and buttons keep the outline. The inner ring matches the raised card the form sits on. */
#buddypress #signup-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), select, textarea):focus-visible,
#buddypress #signup-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), select, textarea):focus,
#bbpress-forums form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), select, textarea):focus-visible,
#bbpress-forums form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), select, textarea):focus {
  box-shadow: 0 0 0 2px var(--bg-raise), 0 0 0 4px var(--accent);
}

.vnc-community-surface :where(button, input[type="button"], input[type="submit"], select, summary),
.vnc-community-surface a.button,
.vnc-community-surface a.vnc-community-load-more__link,
.vnc-community-surface .bp-pagination a,
.vnc-community-surface .bp-navs a {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
}

#buddypress :where(button, input[type="button"], input[type="submit"], select, summary),
#buddypress a.button,
#buddypress .bp-navs a,
#buddypress .bp-pagination a,
#bbpress-forums :where(button, input[type="button"], input[type="submit"], select, summary),
#bbpress-forums a.button,
#bbpress-forums .bbp-pagination a {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
}

#buddypress a.bp-tooltip {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 24px;
  min-width: 24px;
}

#buddypress #whats-new-avatar > a {
  display: inline-flex;
  min-height: 24px;
  min-width: 24px;
}

#buddypress :where(input[type="date"], input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], select, textarea),
#bbpress-forums :where(input[type="date"], input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], select, textarea) {
  background: var(--bg);
  border: 1px solid var(--field-line);
  border-radius: var(--r-ctl);
  color: var(--text);
  font: inherit;
  padding: var(--s2) var(--s3);
}

#buddypress #register-page,
#buddypress #signup-form,
#buddypress #register-page .bp-feedback,
#buddypress #register-page :where(input, select, textarea) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

#buddypress #register-page,
#buddypress #signup-form,
#buddypress #register-page .bp-feedback {
  margin-inline: 0;
  width: 100%;
}

#buddypress #register-page {
  background: var(--bg-raise);
  color: var(--text);
}

#buddypress :where(input, select, textarea)::placeholder,
#bbpress-forums :where(input, select, textarea)::placeholder {
  color: var(--muted);
  opacity: 1;
}

#buddypress :where(input[type="checkbox"], input[type="radio"]),
#bbpress-forums :where(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--accent);
}

#buddypress :where(label, legend, .field-visibility-settings, .field-visibility-settings-toggle),
#bbpress-forums :where(label, legend) {
  color: var(--text);
}

#buddypress textarea#whats-new {
  color: var(--text);
  outline-color: var(--field-line);
  text-decoration-color: var(--text);
}

#buddypress span.count {
  background: var(--bg-raise);
  border-color: var(--line);
  color: var(--muted);
}

#buddypress #bp-nouveau-activity-form,
#buddypress #dir-activity-search-form,
#buddypress #group-activity-search-form,
#buddypress #object-nav,
#buddypress .select-wrap,
.buddypress .crumbs {
  border-color: var(--line);
}

#buddypress span#button-text {
  font-family: var(--font-body);
  font-size: 0;
}

#buddypress span#button-text::before {
  content: "\2191";
  font-family: var(--font-mono);
  font-size: 18px;
  line-height: 1;
}

#buddypress .wp-hide-pw .dashicons {
  font-family: var(--font-mono);
  font-size: 0;
}

#buddypress .wp-hide-pw .dashicons::before {
  content: "\25c9";
  font-size: 18px;
  line-height: 1;
}

#buddypress .wp-hide-pw .dashicons-visibility::before {
  content: "\25ce";
}

/* W6-CSS-18: font-independent community glyphs for both login states.
   Preserve PRE search (20x20), RSS (24x30), and stretched notice (40px) boxes. */
.buddypress-wrap form#group-members-search button[type="submit"] span,
.buddypress-wrap form.bp-dir-search-form button[type="submit"] span,
#group-manage-members-ui #group-members-search-form button[type="submit"] span {
  font-family: var(--font-body);
}

.buddypress-wrap form#group-members-search button[type="submit"] span.dashicons,
.buddypress-wrap form.bp-dir-search-form button[type="submit"] span.dashicons,
#group-manage-members-ui #group-members-search-form button[type="submit"] span.dashicons {
  color: currentColor;
  display: inline-block;
  font-family: var(--font-body);
  height: 20px;
  position: relative;
  vertical-align: top;
  width: 20px;
}

.buddypress-wrap form#group-members-search button[type="submit"] span.dashicons::before,
.buddypress-wrap form.bp-dir-search-form button[type="submit"] span.dashicons::before,
#group-manage-members-ui #group-members-search-form button[type="submit"] span.dashicons::before {
  border: 2px solid currentColor;
  border-radius: 50%;
  box-sizing: border-box;
  content: "";
  font-family: var(--font-body);
  height: 12px;
  left: 2px;
  position: absolute;
  top: 2px;
  width: 12px;
}

.buddypress-wrap form#group-members-search button[type="submit"] span.dashicons::after,
.buddypress-wrap form.bp-dir-search-form button[type="submit"] span.dashicons::after,
#group-manage-members-ui #group-members-search-form button[type="submit"] span.dashicons::after {
  border-top: 2px solid currentColor;
  content: "";
  left: 12px;
  position: absolute;
  top: 12px;
  transform: rotate(45deg);
  transform-origin: left center;
  width: 7px;
}

.buddypress-wrap div.feed a::before,
.buddypress-wrap li.feed a::before {
  border-right: 6px double currentColor;
  border-top: 6px double currentColor;
  border-radius: 0 100% 0 0;
  box-sizing: border-box;
  content: "\2022";
  display: inline-block;
  flex: 0 0 24px;
  font-family: var(--font-body);
  font-size: 20px;
  height: 30px;
  line-height: 1;
  vertical-align: baseline;
  width: 24px;
}

.buddypress-wrap .filter label::before {
  content: "\2304";
  font-family: var(--font-body);
}

.buddypress .buddypress-wrap a.button.dashicons,
.buddypress .buddypress-wrap button.dashicons {
  font-family: var(--font-body);
}

.buddypress-wrap .bp-feedback span.bp-icon {
  box-sizing: border-box;
  flex: 0 0 40px;
  font-family: var(--font-body);
  position: relative;
  width: 40px;
}

.buddypress-wrap .bp-feedback span.bp-icon::before {
  box-sizing: border-box;
  display: inline-block;
  flex: 0 0 20px;
  font-family: var(--font-body);
  height: auto;
  line-height: inherit;
  text-align: center;
  width: 20px;
}

.buddypress-wrap .bp-feedback.info span.bp-icon::before,
.buddypress-wrap .bp-feedback.help span.bp-icon::before {
  content: "i";
  font-family: var(--font-body);
}

.buddypress-wrap .bp-feedback.help span.bp-icon::before {
  content: "?";
}

.buddypress-wrap .bp-feedback.info span.bp-icon::after,
.buddypress-wrap .bp-feedback.help span.bp-icon::after {
  border: 1px solid currentColor;
  border-radius: 50%;
  box-sizing: border-box;
  content: "";
  height: 20px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
}

.buddypress-wrap .bp-feedback.error span.bp-icon::before,
.buddypress-wrap .bp-feedback.warning span.bp-icon::before {
  content: "!";
  font-family: var(--font-body);
}

/* Static loading mark also respects reduced motion without an animation override. */
.buddypress-wrap .bp-feedback.loading span.bp-icon::before {
  content: "\2026";
  font-family: var(--font-body);
}

.buddypress-wrap .bp-feedback.success span.bp-icon::before,
.buddypress-wrap .bp-feedback.updated span.bp-icon::before {
  content: "\2713";
  font-family: var(--font-body);
}

#buddypress .subnav-filters,
#buddypress .bp-navs ul,
#bbpress-forums .bbp-pagination-links {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
}

#buddypress .bp-feedback,
#bbpress-forums .bbp-template-notice {
  background: var(--note-bg);
  border: 1px solid var(--note-line);
  border-radius: var(--r-ctl);
  color: var(--note-text);
  padding: var(--s3) var(--s4);
}

#buddypress .bp-feedback.success {
  background: var(--bg);
  border-color: var(--ok);
  color: var(--ok);
}

#buddypress .bp-feedback.error,
#bbpress-forums .bbp-template-notice.error {
  background: var(--danger-wash);
  border-color: var(--danger);
  color: var(--danger);
}

#buddypress :where(.bp-feedback.warning, .bp-feedback.info),
#bbpress-forums :where(.bbp-template-notice.warning, .bbp-template-notice.important, .bbp-template-notice.info) {
  background: var(--note-bg);
  border-color: var(--note-line);
  color: var(--note-text);
}

#buddypress .bp-feedback .bp-icon {
  background: var(--bg-raise);
  color: inherit;
}

#buddypress .bp-feedback a,
#bbpress-forums .bbp-template-notice a {
  color: inherit;
  text-decoration: underline;
}

#buddypress :where(.bp-pagination, .bp-navs, .component-navigation, .subnav-filters, .profile, .bp-profile-content, .bp-widget, .standard-form),
#bbpress-forums :where(.bbp-forums, .bbp-topics, .bbp-replies, .bbp-body, .bbp-forum-info, .bbp-topic-title, .bbp-reply-content, .bbp-pagination, .bbp-breadcrumb, .bbp-form) {
  color: var(--text);
}

#buddypress .bp-pagination .pag-data,
#buddypress :where(.activity-meta, .item-meta, .item-desc, .field-visibility-settings, .field-visibility-settings-toggle),
#bbpress-forums :where(.bbp-forum-content, .bbp-forum-description, .bbp-topic-meta, .bbp-reply-post-date, .bbp-author-role, .bbp-forum-freshness, .bbp-topic-freshness) {
  color: var(--muted);
}

#buddypress .bp-pagination .pag-data a,
#buddypress .bp-pagination .bp-pagination-links a {
  color: var(--accent-ink);
}

#buddypress .bp-navs li > a,
#buddypress .component-navigation li > a {
  color: var(--accent-ink);
}

#buddypress #register-page :where(.field-visibility-settings, .field-visibility-settings-toggle) {
  color: var(--text);
}

#buddypress .vnc-community-single__body :is(.bp-navs, .single-item-nav, .item-list-tabs, .component-navigation) {
  background: var(--bg);
  color: var(--text);
}

#buddypress .vnc-community-single__body :is(.bp-navs, .single-item-nav, .item-list-tabs, .component-navigation) li > a {
  background: var(--bg);
  color: var(--ink);
}

#buddypress .vnc-community-single__body :is(.bp-navs, .single-item-nav, .item-list-tabs, .component-navigation) :is(.selected, .current) > a,
#buddypress .vnc-community-single__body :is(.bp-navs, .single-item-nav, .item-list-tabs, .component-navigation) li > a[aria-current] {
  background: var(--accent-wash);
  border-color: var(--accent);
  color: var(--accent-ink);
}

#buddypress .vnc-community-single__body :is(.bp-navs, .single-item-nav, .item-list-tabs, .component-navigation) li > a:hover {
  background: var(--accent-wash);
  color: var(--accent-ink);
  text-decoration: underline;
}

#buddypress table.profile-fields {
  background: var(--bg);
  border-color: var(--line);
  color: var(--text);
  table-layout: fixed;
  width: 100%;
}

#buddypress table.profile-fields :where(th, td) {
  background: var(--bg);
  border-color: var(--line);
  color: var(--text);
  overflow-wrap: anywhere;
}

#buddypress table.profile-fields th {
  color: var(--ink);
}

#buddypress table.profile-fields a {
  color: var(--accent-ink);
}

#bbpress-forums :where(.bbp-forums, .bbp-topics, .bbp-replies) {
  background: var(--bg);
  border-color: var(--line);
}

#bbpress-forums :where(li.bbp-header, li.bbp-footer) {
  background: var(--bg-raise);
  border-color: var(--line);
  color: var(--ink);
}

#bbpress-forums .bbp-body > ul {
  background: var(--bg);
  border-color: var(--line);
  color: var(--text);
}

#bbpress-forums :where(a.bbp-forum-title, a.bbp-topic-permalink, a.bbp-author-name, .bbp-breadcrumb a, .bbp-pagination a) {
  color: var(--accent-ink);
}

#bbpress-forums .bbp-forum-description > a {
  color: var(--accent-ink);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.vnc-community-heading {
  color: var(--ink);
  margin: 0 0 var(--s5);
}

.vnc-community-grid,
.vnc-community-feed__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.vnc-community-latest {
  padding-block: var(--s5);
}

.vnc-community-latest .activity-band {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  list-style: none;
  margin: 0;
  padding: 0 var(--s5);
}

.vnc-community-latest .activity-row,
.vnc-community-feed__list .activity-row {
  align-items: flex-start;
  border-top: 1px solid var(--line-soft);
  display: flex;
  font-size: 15.5px;
  gap: var(--s4);
  min-height: 72px;
  padding: var(--s4) 0;
}

.vnc-community-latest .vnc-community-feed__item:first-child .activity-row,
.vnc-community-feed__list .vnc-community-feed__item:first-child .activity-row {
  border-top: 0;
}

.vnc-community-feed__item .activity-inner {
  margin: 0 0 var(--s4);
  overflow-wrap: anywhere;
}

/* The id selector outranks Nouveau's `body #buddypress * a { text-decoration: none; }`. */
.vnc-community-feed__item .activity-inner a,
.vnc-community-feed__item .activity-inner a:hover,
.vnc-community-feed__item .activity-inner a:focus,
body #buddypress .vnc-community-feed__item .activity-inner a,
body #buddypress .vnc-community-feed__item .activity-inner a:hover,
body #buddypress .vnc-community-feed__item .activity-inner a:focus {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.vnc-community-latest .activity-row .avatar,
.vnc-community-feed__list .activity-row .avatar {
  align-items: center;
  background: var(--accent);
  border-radius: 50%;
  color: var(--accent-contrast);
  display: inline-flex;
  flex: none;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  height: 40px;
  justify-content: center;
  width: 40px;
}

.vnc-community-latest .activity-row__action,
.vnc-community-feed__list .activity-row__action {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.vnc-community-latest .activity-row a,
.vnc-community-feed__list .activity-row a {
  align-items: center;
  display: inline-flex;
  font-weight: 600;
  min-height: 24px;
  min-width: 24px;
}

/* Links inside the activity sentence are inline targets (WCAG 2.5.8 exception) and must wrap with the text. */
.vnc-community-latest .activity-row .activity-row__action a,
.vnc-community-feed__list .activity-row .activity-row__action a {
  display: inline;
  min-height: 0;
  min-width: 0;
}

.vnc-community-latest .activity-row time,
.vnc-community-feed__list .activity-row time {
  color: var(--muted);
  flex: none;
  font-family: var(--font-mono);
  font-size: 12.5px;
  margin-left: auto;
  white-space: nowrap;
}

.vnc-community-grid {
  display: grid;
  gap: var(--s5);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.vnc-community-grid__item {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  min-width: 0;
}

.vnc-community-grid__item--member {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: var(--s4);
}

.vnc-community-grid__item--member a.member {
  color: var(--ink);
  min-height: 44px;
  min-width: 44px;
  width: fit-content;
}

.vnc-community-actions,
.vnc-community-actions .item-buttons,
.vnc-community-actions .member-header-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
}

.vnc-community-actions a.button,
.vnc-community-actions button {
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: var(--r-ctl);
  color: var(--accent-contrast);
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 600;
  padding: var(--s2) var(--s4);
  text-decoration: none;
}

.vnc-community-actions a.button:hover,
.vnc-community-actions button:hover {
  background: var(--accent-ink);
  border-color: var(--accent-ink);
  color: var(--accent-contrast);
}

.vnc-community-overview {
  display: grid;
  gap: var(--s5);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 1fr);
}

.vnc-community-single {
  display: grid;
  gap: var(--s5);
  padding-block: var(--s6) var(--s4);
}

.vnc-community-single__body {
  padding-block: var(--s4) var(--s7);
}

.vnc-community-single__body .bp-navs ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
  list-style: none;
  margin: 0 0 var(--s5);
  padding: 0;
}

.vnc-community-single__body .bp-navs a {
  border: 1px solid var(--line);
  border-radius: var(--r-ctl);
  color: var(--ink);
  padding: var(--s2) var(--s4);
  text-decoration: none;
}

.vnc-community-single__body .bp-navs a:hover,
.vnc-community-single__body .bp-navs .selected a,
.vnc-community-single__body .bp-navs .current a {
  background: var(--accent-wash);
  border-color: var(--accent);
  color: var(--accent-ink);
}

.vnc-community-feed__list {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding-inline: var(--s5);
}

.vnc-community-load-more {
  border-top: 1px solid var(--line-soft);
  display: flex;
  justify-content: center;
  padding: var(--s4);
}

.vnc-community-load-more a.vnc-community-load-more__link {
  color: var(--accent-ink);
  font-weight: 600;
  padding-inline: var(--s4);
}

.vnc-topic-list .vnc-community-widget + .vnc-community-widget {
  border-top: 1px solid var(--line);
}

.vnc-topic-list .topic-row--stats {
  align-items: center;
  border-top: 1px solid var(--line);
  display: grid;
  gap: var(--s1) var(--s4);
  grid-template-columns: 82px minmax(0, 1fr) auto;
  padding: var(--s4) 0;
}

.vnc-topic-list .topic-row--stats .tstat {
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r-ctl);
  color: var(--muted);
  display: flex;
  flex-direction: column;
  font-family: var(--font-mono);
  font-size: 10.5px;
  grid-column: 1;
  grid-row: 1 / span 2;
  justify-content: center;
  line-height: 1.25;
  min-height: 62px;
  text-align: center;
}

/* Override BuddyPress Nouveau's body #buddypress div radius. */
body #buddypress .vnc-topic-list .topic-row--stats .tstat {
  border-radius: var(--r-ctl);
}

body #buddypress .vnc-topic-list .topic-row--stats .trow-tags,
body #buddypress .vnc-topic-list .topic-row--stats .tstats {
  border-radius: 0;
}

.vnc-topic-list .topic-row--stats .tstat strong {
  color: var(--ink);
  font-size: 20px;
  line-height: 1;
}

.vnc-topic-list .topic-row--stats .tstat--answered {
  border-color: var(--accent);
  background: var(--accent-wash);
  color: var(--ok);
}

.vnc-topic-list .topic-row--stats .tstat--answered strong {
  color: var(--ok);
}

.vnc-topic-list .topic-row--stats .tstat--open {
  border-color: var(--line);
  background: var(--bg-raise);
  color: var(--muted);
}

.vnc-topic-list .topic-row--stats .trow-tags {
  border-radius: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
}

.vnc-topic-list .topic-row--stats .tag {
  background: var(--accent-wash);
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--accent-ink);
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.65;
  min-height: 24px;
  padding: 1px 7px;
  text-decoration: none;
  white-space: nowrap;
}

.vnc-topic-list .topic-row--stats .tstats {
  align-self: center;
  border-radius: 0;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 12.5px;
  grid-column: 3;
  grid-row: 1 / span 2;
  line-height: 1.65;
  text-align: right;
  white-space: nowrap;
}

.vnc-topic-list .topic-row--stats .tstats strong {
  color: var(--ink);
  display: block;
  font-size: 16px;
}

.vnc-topic-list .topic-row--stats .tstats span {
  display: block;
}

.vnc-topic-list .topic-row--stats h3 a {
  color: var(--ink);
}

.vnc-topic-list .topic-row--stats h3 a:hover {
  color: var(--accent-ink);
}

.vnc-topic {
  padding-block: var(--s6) var(--s7);
}

.vnc-topic__header {
  display: grid;
  gap: var(--s4);
  margin-block: var(--s5);
}

.vnc-topic__header h1 {
  overflow-wrap: anywhere;
}

.vnc-topic__header .vnc-community-actions a {
  align-items: center;
  display: inline-flex;
  min-height: 24px;
  padding-block: var(--s1);
}

.vnc-topic__replies {
  margin-block: var(--s7) var(--s5);
}

.vnc-topic .bbp-breadcrumb,
.vnc-topic .bbp-pagination,
.vnc-topic .bbp-template-notice {
  margin-block: var(--s4);
}

.vnc-topic .bbp-breadcrumb a,
.vnc-topic .bbp-pagination a {
  color: var(--accent-ink);
}

.vnc-topic .bbp-pagination-links {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
}

.vnc-topic .bbp-pagination a,
.vnc-topic .bbp-pagination .current {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--r-ctl);
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: var(--s2);
}

.vnc-topic fieldset {
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  display: grid;
  gap: var(--s4);
  margin-top: var(--s6);
  padding: var(--s5);
}

.vnc-topic :where(input, select, textarea) {
  background: var(--bg);
  border: 1px solid var(--field-line);
  border-radius: var(--r-ctl);
  color: var(--text);
  font: inherit;
  padding: var(--s2) var(--s3);
}

.vnc-topic textarea {
  min-height: 180px;
  resize: vertical;
  width: 100%;
}

.vnc-topic input[type="submit"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-contrast);
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 600;
  padding-inline: var(--s5);
}

.vnc-topic input[type="submit"]:hover {
  background: var(--accent-ink);
  border-color: var(--accent-ink);
  color: var(--accent-contrast);
}

.vnc-registration-consent .consent__heading {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.vnc-community-single__rail,
.vnc-registration-layout__rail {
  min-width: 0;
}

#buddypress .vnc-community-single__body.doc-grid {
  grid-template-columns: minmax(0, 1fr) var(--railcol);
}

#buddypress .vnc-registration-layout.doc-grid {
  grid-template-columns: minmax(0, var(--readcol)) var(--railcol);
  justify-content: space-between;
}

.vnc-community-single__rail .spec-card,
.vnc-registration-layout__rail .spec-card {
  margin-bottom: var(--s5);
}

@media (max-width: 899px) {
  #buddypress .vnc-community-single__body.doc-grid,
  #buddypress .vnc-registration-layout.doc-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 599px) {
  .vnc-community-surface {
    padding-inline: var(--s4);
  }

  .vnc-community-overview {
    grid-template-columns: minmax(0, 1fr);
  }

  .vnc-community-latest .activity-row,
  .vnc-community-feed__list .activity-row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .vnc-community-latest .activity-row time,
  .vnc-community-feed__list .activity-row time {
    grid-column: 2;
    margin-left: 0;
    white-space: normal;
  }

  .vnc-topic-list .topic-row--stats {
    align-items: start;
    grid-template-columns: 68px minmax(0, 1fr);
  }

  .vnc-topic-list .topic-row--stats .tstat {
    grid-row: 1 / span 3;
  }

  .vnc-topic-list .topic-row--stats .tstats {
    grid-column: 2;
    grid-row: 3;
    min-width: 0;
    text-align: left;
    white-space: normal;
  }

  .vnc-topic-list .topic-row--stats .trow-tags {
    overflow-wrap: anywhere;
  }

  .vnc-topic .post-head {
    align-items: flex-start;
  }

  .vnc-topic .post-head time {
    margin-left: 0;
    width: 100%;
  }
}

/* W5-03-R1b: BuddyPress's own colour on the field-visibility text beats a descendant rule; scope it to the register page. */
#buddypress #register-page .field-visibility-settings,
#buddypress #register-page .field-visibility-settings-header,
#buddypress #register-page .field-visibility-settings-notoggle,
#buddypress #register-page .field-visibility-settings-toggle {
  color: var(--text);
}

#buddypress #register-page .field-visibility-settings-header a,
#buddypress #register-page .field-visibility-settings-toggle a {
  color: var(--accent-ink);
}

/* W5-03-R1c: keep Nouveau's directory strip on the theme surface at mobile widths. */
#buddypress .bp-navs.dir-navs,
#buddypress .bp-navs.dir-navs li > a {
  background: var(--bg);
}

/* W5-03-R1b: the R1 nav colour left the directory navs' selected item as accent ink on Nouveau's accent background
   (1.04:1 on /members/, /groups/, /activity/). Give the selected directory item the site's wash-and-ink treatment. */
#buddypress .bp-navs.dir-navs :is(.selected, .current) > a,
#buddypress .bp-navs.dir-navs li > a[aria-current],
#buddypress .item-list-tabs :is(.selected, .current) > a {
  background: var(--accent-wash);
  border-color: var(--accent);
  color: var(--accent-ink);
}

/* W5-03-R1c: the Nouveau directory search renders a submit button inside its search wrapper. */
#buddypress :is(.bp-search, #dir-search) button[type="submit"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-contrast);
}

/* W5-04-R2b: outrank Nouveau's responsive greys on the measured community rails and list items. */
body #buddypress nav.crumbs,
body #buddypress nav.toc-rail {
  border-color: var(--line);
}

/* W6-CSS-19: cover signed-in group tabs (Invite, Manage); W5-04-R2b listed only anonymous-visible tab ids */
body #buddypress :is(li#activity-all, li.bp-groups-tab) {
  background: var(--bg);
  border-color: var(--line);
}

body #buddypress :is(li#activity-all, li.bp-groups-tab):is(.current, .selected, :hover) {
  background: var(--bg-raise);
  border-color: var(--line);
}

/* W6-CSS-03: paint the selected group tab anchor and retain a non-colour indicator. */
body #buddypress #object-nav.bp-navs li:is(.current, .selected) > a {
  background: var(--bg-raise);
  color: var(--accent-ink);
  text-decoration: underline;
  text-decoration-color: var(--accent-ink);
  text-underline-offset: 0.15em;
}

/* W6-CSS-20: BuddyPress sub-navigation (group admin sub-tabs) on theme tokens; signed-in finding, bracket 5 */
body #buddypress .bp-subnavs li {
  background: var(--bg);
  border-color: var(--line);
}

body #buddypress .bp-subnavs li:is(.current, .selected, :hover) {
  background: var(--bg-raise);
  border-color: var(--line);
}

body #buddypress .bp-subnavs li:is(.current, .selected) > a {
  background: var(--bg-raise);
  color: var(--accent-ink);
  text-decoration: underline;
  text-decoration-color: var(--accent-ink);
  text-underline-offset: 0.15em;
}

body #buddypress ul.vnc-community-feed__list.activity-band {
  background: var(--bg);
  border-color: var(--line);
}

body #buddypress ul.vnc-community-feed__list.activity-band > li.vnc-community-feed__item,
body #buddypress ul.activity-band.activity-list > li.activity-item {
  background: var(--bg);
  border-color: var(--line);
  box-shadow: none;
}

/* W5-04-R2b: preserve inline-link affordance against Nouveau's body-scoped reset. */
body #buddypress .consent label a,
body #buddypress .vnc-registration-privacy-notes p a,
body #buddypress .notice > a {
  line-height: 24px;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* W5-04-R4: spacing observed in the R2b second read and R3 group re-run.
   Keep hidden-reader margins and automatic layout margins for rubric disposition. */
body #buddypress :is(#dir-activity-search-submit, #group-activity-search-submit) {
  padding-block: var(--s1);
}

/* Directory filters have no prototype rule; retain on-scale control padding.
   Group navs already have their own --s2 / --s4 padding above. */
body #buddypress .bp-navs.dir-navs:not(.vnc-community-single__body .bp-navs) li > a {
  padding: 0 var(--s4);
}

body #buddypress .bp-navs span.count {
  margin-left: var(--s1);
  padding-block: var(--s1);
}

body #buddypress .subnav-filters {
  margin-top: var(--s4);
}

body #buddypress .subnav-filters li.feed {
  margin-right: var(--s4);
}

body #buddypress #item-header {
  margin-bottom: var(--s4);
}

body #buddypress #item-body {
  margin-block: var(--s5);
}

body #buddypress ul.activity-list > li.activity-item,
.vnc-activity-directory ul.vnc-community-feed__list > li.vnc-community-feed__item {
  /* Prototype site.css:110: the inner .activity-row carries the row padding
     (site.css:910-912), so the Nouveau item wrapper adds none.
     The directory has no #buddypress wrapper; include full and mini items there. */
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}

body #buddypress ul.vnc-community-feed__list.activity-band {
  /* Prototype site.css:954-956: the band supplies only inline padding. */
  padding: 0 var(--s5);
}

body #buddypress #activity-filter-by {
  margin-right: var(--s5);
}

/* Activity section headings: activity.html:108,115,127, plus the reset
   at site.css:110. Keep the hidden headings out of these overrides. */
body #buddypress #vnc-activity-heading {
  margin: 0 0 var(--s4);
}

body #buddypress h2.bp-screen-title:not(.screen-reader-text):not(.bp-screen-reader-text) {
  margin-block: var(--s5);
}

/* Group-card headings inherit the prototype reset (site.css:110,845-850). */
body #buddypress .vnc-community-single .group-card > h3 {
  margin-block: 0;
}

@media (min-width: 600px) {
  body #buddypress #activity-stream {
    padding-top: var(--s4);
  }
}

@media (max-width: 599px) {
  /* Remove Hello's extra inset. The outer community surface already owns
     the single --s4 gutter matching the prototype .wrap (site.css:178). */
  body.buddypress main#main:has(#buddypress) {
    padding-inline: 0;
  }

  body.buddypress main#main:has(#buddypress) h1.entry-title {
    padding-inline: 0;
  }

  /* Group/member content wraps the shared activity loop in another surface. */
  body #buddypress .vnc-community-surface .vnc-community-surface {
    padding-inline: 0;
  }

  body #buddypress :is(#dir-activity-search-submit, #group-activity-search-submit) {
    padding-inline: var(--s3);
  }
}

/* Group home parity. These components also render outside Elementor widgets. */
/* Hello theme.css:1 caps .site-main at 1140px. The surface owns the gutter. */
body.buddypress main.site-main:has(.vnc-community-group-home, .vnc-community-activity-page) {
  max-width: var(--max);
}

/* Beat Nouveau's body.buddypress .buddypress-wrap heading margins.
   Prototype site.css:110,599-608 leaves heading spacing to the page head. */
body.buddypress .buddypress-wrap :is(.vnc-community-group-home, .vnc-community-activity-page) .page-head h1,
body.buddypress .buddypress-wrap .vnc-community-group-home .vnc-topic-list > h2 {
  margin: 0;
}

/* Nouveau's horizontal directory nav rule adds both borders and a shadow. */
body.buddypress .buddypress-wrap :is(.vnc-community-group-home, .vnc-community-activity-page) nav.crumbs,
body.buddypress .buddypress-wrap .vnc-community-group-home nav.toc-rail {
  border-top: 0;
  border-bottom: 0;
  box-shadow: none;
}

/* Blog chips keep their plain rail inside Nouveau's horizontal directory. */
body.buddypress .buddypress-wrap .vnc-community-activity-page nav.chip-row {
  border-top: 0;
  border-bottom: 0;
  box-shadow: none;
}

/* Remove Nouveau's item borders. The activity band keeps its full box,
   and the inner .activity-row keeps its top separator (prototype site.css:910-912,954-956). */
.vnc-community-activity-page ul.vnc-community-feed__list.activity-band > li.vnc-community-feed__item {
  border: 0;
}

body #buddypress .vnc-community-group-home #item-header.page-head,
#buddypress .vnc-community-activity-page .page-head {
  display: block;
  margin: 0;
  padding: var(--s6) 0 var(--s5);
}

/* The prototype dek has no bottom margin (site.css:110,604).
   chrome.css body p otherwise adds --s3 inside the padded head. */
#buddypress .vnc-community-activity-page .page-head > p.dek {
  margin-bottom: 0;
}

@media (min-width: 600px) {
  /* The existing #activity-stream adds --s4 at this breakpoint.
     Together with --s2 here, the dek-to-day gap remains --s5. */
  #buddypress .vnc-community-activity-page .page-head {
    padding-bottom: var(--s2);
  }
}

.vnc-community-group-home .vnc-group-heading-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s3);
}

.vnc-community-group-home .vnc-group-heading-row > h1 {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
}

body #buddypress .vnc-community-group-home .vnc-group-membership,
body #buddypress .vnc-community-group-home .vnc-group-membership .generic-button {
  float: none;
  margin: 0;
}

.vnc-community-group-home .vnc-group-membership {
  flex: 0 0 auto;
}

/* Same tokens as community.css .post-head .role. */
.vnc-community-group-home .vnc-group-member-badge {
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: 11.5px;
  padding: 1px 6px;
}

/* Keep the h2 a direct child; only the heading and action share a grid row. */
.vnc-community-group-home .vnc-topic-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: var(--s4);
}

.vnc-community-group-home .vnc-topic-list > * {
  grid-column: 1 / -1;
}

.vnc-community-group-home .vnc-topic-list > h2 {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
}

.vnc-community-group-home .vnc-group-new-topic {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-self: end;
}

@media (max-width: 599px) {
  .vnc-community-group-home .vnc-group-heading-row > h1 {
    flex-basis: 100%;
  }

  .vnc-community-group-home .vnc-topic-list > .vnc-group-new-topic {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: start;
    margin-block: var(--s3) var(--s4);
  }
}

#buddypress .vnc-community-group-home .doc-grid {
  align-items: start;
  display: grid;
  gap: var(--s8);
  padding-block: var(--s5) var(--s8);
}

#buddypress .vnc-community-group-home .doc-grid:has(+ .group-guidance) {
  padding-bottom: 0;
}

#buddypress .vnc-community-group-home .group-guidance {
  margin-top: var(--s6);
}

#buddypress .vnc-community-group-home .group-guidance > .notice + .notice {
  margin-top: var(--s3);
}

.vnc-community-group-home .vnc-community-single__main {
  min-width: 0;
}

.vnc-community-group-home .spec-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  font-size: 15px;
  padding: var(--s5);
}

.vnc-community-group-home .spec-card dl {
  display: grid;
  gap: var(--s2) var(--s4);
  grid-template-columns: auto minmax(0, 1fr);
  margin: 0;
}

.vnc-community-group-home .spec-card dt {
  color: var(--muted);
  font-size: 14px;
}

.vnc-community-group-home .spec-card dd {
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 13px;
  margin: 0;
  overflow-wrap: anywhere;
}

.vnc-community-group-home .toc-rail {
  border-left: 1px solid var(--line);
  font-size: 14px;
  margin-top: var(--s5);
  padding-left: var(--s5);
  position: static;
}

.vnc-community-group-home .toc-rail h2 {
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.08em;
  margin-bottom: var(--s3);
  text-transform: uppercase;
}

.vnc-community-group-home .toc-rail ul {
  display: grid;
  gap: var(--s2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.vnc-community-group-home .toc-rail a {
  color: var(--muted);
  text-decoration: none;
}

.vnc-community-group-home .toc-rail a:hover {
  color: var(--brand);
  text-decoration: underline;
}

.vnc-community-group-home .vnc-topic-list > h2 {
  margin-bottom: var(--s4);
}

.vnc-community-group-home .topic-row--stats > h3 {
  font-family: var(--font-display);
  font-size: 16.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.15;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.vnc-community-group-home .topic-row--stats .trow-tags {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
}

.vnc-activity-directory + .notice {
  margin-top: var(--s5);
}

@media (max-width: 1023px) {
  #buddypress .vnc-community-group-home .group-guidance {
    margin-top: var(--s5);
  }

  #buddypress .vnc-community-group-home .doc-grid {
    gap: var(--s5);
    grid-template-columns: minmax(0, 1fr);
  }

  .vnc-community-group-home .toc-rail {
    display: none;
  }
}

/* W5-FIX-19: registration owns its grid even without anchor TOC links. */
body.buddypress main.site-main:has(.vnc-registration-page) {
  max-width: var(--max);
}

/* The registration wrapper has no .wrap or .vnc-community-surface gutter.
   Keep Hello's mobile inset at zero and put the prototype gutter here once. */
body.buddypress main#main:has(.vnc-registration-page) {
  padding-inline: 0;
}

body #buddypress .vnc-registration-page {
  box-sizing: border-box;
  padding-inline: var(--s5);
}

body #buddypress .vnc-registration-page .page-head {
  display: block;
  margin: 0;
  padding: var(--s6) 0 var(--s5);
}

body.buddypress .buddypress-wrap .vnc-registration-page .page-head h1 {
  margin: 0;
}

body.buddypress .buddypress-wrap .vnc-registration-page nav.crumbs {
  border-top: 0;
  border-bottom: 0;
  box-shadow: none;
}

body #buddypress .vnc-registration-layout.doc-grid {
  display: grid;
  grid-template-columns: minmax(0, var(--readcol)) var(--railcol);
  gap: var(--s5) var(--s8);
  grid-template-rows: min-content 1fr;
  align-items: start;
  padding-bottom: var(--s8);
}

body #buddypress .vnc-registration-layout #register-page {
  background: var(--bg);
}

.vnc-registration-layout__form {
  grid-area: 1 / 1 / 3;
  min-width: 0;
}

body #buddypress .vnc-registration-layout #signup-form .layout-wrap,
body #buddypress .vnc-registration-layout #signup-form .register-section {
  display: block;
  float: none;
  width: 100%;
  min-width: 0;
  margin-inline: 0;
}

body #buddypress .vnc-registration-layout #basic-details-section {
  border: 0;
  padding: 0;
}

body #buddypress .vnc-registration-layout #signup-form .field {
  margin-bottom: var(--s5);
}

body #buddypress .vnc-registration-layout #signup-form .field > label {
  display: block;
  margin: 0 0 var(--s2);
  color: var(--ink);
  font-weight: 600;
}

body #buddypress .vnc-registration-layout #signup-form .field input:not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  min-height: 44px;
  padding: var(--s2) var(--s4);
  border: 1px solid var(--field-line);
  border-radius: var(--r-ctl);
  background: var(--bg);
  color: var(--text);
  font: inherit;
}

body #buddypress .vnc-registration-layout #signup-form .field input[aria-invalid="true"] {
  border: 2px solid var(--danger);
}

body #buddypress .vnc-registration-layout #signup-form .field__help {
  margin: var(--s2) 0 0;
  color: var(--muted);
  font-size: 14px;
}

body #buddypress .vnc-registration-layout #pass-strength-result {
  width: auto;
  height: auto;
  border: 0;
  padding: 0;
  background: var(--bg);
  text-align: start;
  font-weight: 400;
}

body #buddypress .vnc-registration-layout .password-input-wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center;
  gap: var(--s2);
}

body #buddypress .vnc-registration-layout .password-input-wrapper input {
  min-width: 0;
}

body #buddypress .vnc-registration-layout .wp-hide-pw {
  flex: none;
  box-sizing: border-box;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--r-ctl);
  background: var(--bg);
  color: var(--text);
}

/* Reuse the .vnc-registration-consent .consent__heading clip pattern. */
body #buddypress .vnc-registration-layout .vnc-caps-lock-status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

/* Core injects this warning, but its admin-only hidden default is absent here.
   Normal declarations allow core's inline show/hide as well as our key state. */
body #buddypress .vnc-registration-layout .caps-warning {
  display: none;
  grid-column: 1 / -1;
  min-width: 0;
  max-width: 100%;
  color: var(--muted);
  font-size: 14px;
  overflow-wrap: anywhere;
}

body #buddypress .vnc-registration-layout .caps-warning.vnc-caps-lock-on {
  display: block;
}

body #buddypress .vnc-registration-layout .caps-warning svg {
  fill: currentColor;
  stroke: currentColor;
  vertical-align: middle;
  margin-inline-end: var(--s2);
}

body #buddypress .vnc-registration-layout #signup-form svg {
  width: 24px;
  height: 24px;
  max-height: 24px;
  flex: none;
}

body #buddypress .vnc-registration-layout .pw-weak input[type="checkbox"] {
  width: 24px;
  min-height: 24px;
}

body #buddypress .vnc-registration-layout #profile-details-section {
  margin-top: var(--s6);
  padding: var(--s5);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  background: var(--bg);
}

body #buddypress .vnc-registration-layout #profile-details-section > legend {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  margin-bottom: var(--s4);
}

body #buddypress .vnc-registration-consent {
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  background: var(--panel);
  padding: var(--s5);
  margin: var(--s5) 0;
  font-size: 15px;
}

body #buddypress .vnc-registration-consent > h2 {
  font-size: 20px;
  margin: 0;
}

body #buddypress .vnc-registration-consent .consent {
  border: 0;
  background: var(--panel);
  padding: 0;
  margin: 0;
}

body #buddypress .vnc-registration-consent .consent__choice {
  display: flex;
  align-items: flex-start;
  gap: var(--s3);
  min-height: 44px;
}

body #buddypress .vnc-registration-consent .consent__choice input[type="checkbox"] {
  box-sizing: border-box;
  flex: none;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  margin: 1px 0 0;
  padding: 0;
}

body #buddypress .vnc-registration-consent .consent__choice label {
  margin: 0;
  min-width: 0;
  min-height: 44px;
  align-items: flex-start;
}

body #buddypress .vnc-registration-privacy-notes p {
  margin: var(--s3) 0 0;
}

body #buddypress .vnc-registration-privacy-notes p:first-child {
  margin-top: var(--s4);
}

body #buddypress .vnc-registration-layout #signup-form input.btn--primary {
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: var(--r-ctl);
  color: var(--accent-contrast);
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 600;
  min-height: 44px;
  padding: var(--s3) var(--s5);
}

body #buddypress .vnc-registration-layout #signup-form input.btn--primary:hover {
  background: var(--accent-ink);
  border-color: var(--accent-ink);
}

.vnc-registration-layout .vnc-registration-benefits {
  grid-area: 1 / 2;
  background: var(--bg);
}

body #buddypress .vnc-registration-layout .vnc-registration-benefits h2 {
  font-size: 20px;
  margin: 0 0 var(--s3);
}

.vnc-registration-layout__rail .spec-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  font-size: 15px;
  padding: var(--s5);
}

.vnc-registration-layout__rail .spec-card dl {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--s2) var(--s4);
  margin: 0;
}

.vnc-registration-layout__rail .spec-card dt {
  color: var(--muted);
  font-size: 14px;
}

.vnc-registration-layout__rail .spec-card dd {
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 13px;
  margin: 0;
  overflow-wrap: anywhere;
}

.vnc-registration-layout__rail .toc-rail {
  position: static;
  margin-top: var(--s5);
}

.vnc-registration-layout__rail {
  grid-area: 2 / 2;
}

@media (max-width: 899px) {
  body #buddypress .vnc-registration-page {
    padding-inline: var(--s4);
  }

  body #buddypress .vnc-registration-layout.doc-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: var(--s5);
  }

  .vnc-registration-layout.doc-grid > * {
    grid-area: auto;
  }
}

@media (max-width: 1023px) {
  .vnc-registration-layout__rail .toc-rail {
    display: none;
  }
}

/* W5-FIX-41: beat Nouveau's body.buddypress .buddypress-wrap heading margins. */
body.buddypress .vnc-community-group-home .toc-rail > h2 {
  margin: 0 0 var(--s3);
}

body.buddypress .vnc-community-group-home .topic-row--stats > h3 {
  margin: 0;
}

body #buddypress .vnc-registration-layout #signup-form legend {
  margin-top: 0;
}

body #buddypress .vnc-registration-layout #signup-form .editfield.field {
  margin-top: 0;
}

body #buddypress .vnc-registration-layout #signup-form .submit {
  padding-top: 0;
}

body #buddypress .vnc-registration-layout #signup-form input#submit {
  margin-right: 0;
}

body #buddypress .vnc-registration-layout .toc-rail > h2 {
  margin: 0 0 var(--s3);
}

p.member-stat-line {
  margin-bottom: var(--s5);
  color: var(--muted);
  font: 12.5px var(--font-mono);
  white-space: nowrap;
}

body.bp-user .vnc-community-single__body .vnc-community-feed__item .avatar {
  display: none;
}

body.bp-user .vnc-community-single__body .vnc-community-feed__item .activity-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

/* BuddyPress Nouveau 14.5.2: owner request "no light glow; 1px --line border". */
#buddypress.buddypress-wrap.bp-dir-hori-nav:not(.bp-vertical-navs) nav:not(.tabbed-links) {
  box-shadow: none;
}

#buddypress #object-nav {
  border: 1px solid var(--line);
}

#buddypress .activity-list.bp-list .activity-item {
  box-shadow: none;
}

#buddypress .activity-update-form {
  box-shadow: none;
}

#buddypress .activity-update-form #whats-new-textarea textarea:focus {
  box-shadow: none;
}

#buddypress.buddypress-wrap .activity-list .load-more:focus,
#buddypress.buddypress-wrap .activity-list .load-more:hover,
#buddypress.buddypress-wrap .activity-list .load-newest:focus,
#buddypress.buddypress-wrap .activity-list .load-newest:hover {
  box-shadow: none;
}

#buddypress:is(body.activity-permalink #buddypress) .activity-list .activity-avatar img {
  box-shadow: none;
}

#buddypress form.ac-form .ac-reply-content .ac-textarea textarea:focus {
  box-shadow: none;
}

#buddypress .groups-header .desc-wrap .group-description {
  box-shadow: none;
  border: 1px solid var(--line);
}

#buddypress .bp-messages-content #bp-message-thread-list .message-metadata {
  box-shadow: none;
  border: 1px solid var(--line);
}

#buddypress.buddypress-wrap input[type=email]:focus,
#buddypress.buddypress-wrap input[type=password]:focus,
#buddypress.buddypress-wrap input[type=tel]:focus,
#buddypress.buddypress-wrap input[type=text]:focus,
#buddypress.buddypress-wrap input[type=url]:focus,
#buddypress.buddypress-wrap textarea:focus {
  box-shadow: none;
}

#buddypress.buddypress-wrap .bp-search form:focus,
#buddypress.buddypress-wrap .bp-search form:hover,
#buddypress.buddypress-wrap .select-wrap:focus,
#buddypress.buddypress-wrap .select-wrap:hover {
  box-shadow: none;
}

#buddypress.buddypress-wrap form#group-members-search:hover {
  box-shadow: none;
}

#buddypress:is(.buddypress #buddypress) .create-button a {
  box-shadow: none;
}

#buddypress:is(.buddypress #buddypress) .create-button a:focus,
#buddypress:is(.buddypress #buddypress) .create-button a:hover {
  box-shadow: none;
}

@keyframes vnc-loader-pulsate {
  from {
    border-color: var(--line-soft);
    box-shadow: 0 0 6px var(--line);
  }
  to {
    border-color: var(--line);
    box-shadow: 0 0 6px var(--line-soft);
  }
}

#buddypress.buddypress-wrap a.loading,
#buddypress.buddypress-wrap input.loading {
  animation-name: vnc-loader-pulsate;
}

/* W-CSSFIX-2 A: BuddyPress Nouveau 14.5.2 light hover/focus backgrounds. */
#buddypress.buddypress-wrap .bp-navs li a:hover a .count,
#buddypress.buddypress-wrap .bp-navs li.current a .count,
#buddypress.buddypress-wrap .bp-navs li.selected a .count {
  background-color: var(--panel);
}

#buddypress.buddypress-wrap .bp-navs li:not(.current) a:focus,
#buddypress.buddypress-wrap .bp-navs li:not(.current) a:hover,
#buddypress.buddypress-wrap .bp-navs li:not(.selected) a:focus,
#buddypress.buddypress-wrap .bp-navs li:not(.selected) a:hover {
  background-color: var(--panel);
  color: var(--accent-ink);
}

#buddypress .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:focus,
#buddypress .activity-update-form #whats-new-post-in-box #whats-new-post-in-box-items .bp-activity-object:hover {
  background-color: var(--panel);
}

#buddypress.buddypress-wrap .activity-list .load-more a:focus,
#buddypress.buddypress-wrap .activity-list .load-more a:hover,
#buddypress.buddypress-wrap .activity-list .load-newest a:focus,
#buddypress.buddypress-wrap .activity-list .load-newest a:hover {
  background-color: var(--panel);
  color: var(--accent-ink);
}

#buddypress.buddypress-wrap .standard-form input:focus,
#buddypress.buddypress-wrap .standard-form select:focus,
#buddypress.buddypress-wrap .standard-form textarea:focus {
  background-color: var(--panel);
  color: var(--text);
}

#buddypress.buddypress-wrap .standard-form.profile-edit input:focus {
  background-color: var(--panel);
}

#buddypress:is(.buddypress .buddypress-wrap) .activity-read-more a:focus,
#buddypress:is(.buddypress .buddypress-wrap) .activity-read-more a:hover,
#buddypress:is(.buddypress .buddypress-wrap) .button-nav li a:focus,
#buddypress:is(.buddypress .buddypress-wrap) .button-nav li a:hover,
#buddypress:is(.buddypress .buddypress-wrap) .button-nav li.current a,
#buddypress:is(.buddypress .buddypress-wrap) .comment-reply-link:focus,
#buddypress:is(.buddypress .buddypress-wrap) .comment-reply-link:hover,
#buddypress:is(.buddypress .buddypress-wrap) .generic-button a:focus,
#buddypress:is(.buddypress .buddypress-wrap) .generic-button a:hover,
#buddypress:is(.buddypress .buddypress-wrap) a.button:focus,
#buddypress:is(.buddypress .buddypress-wrap) a.button:hover {
  background-color: var(--panel);
  color: var(--accent-ink);
}

#buddypress:is(.buddypress .buddypress-wrap) button:focus,
#buddypress:is(.buddypress .buddypress-wrap) button:hover,
#buddypress:is(.buddypress .buddypress-wrap) input[type=button]:focus,
#buddypress:is(.buddypress .buddypress-wrap) input[type=button]:hover,
#buddypress:is(.buddypress .buddypress-wrap) input[type=reset]:focus,
#buddypress:is(.buddypress .buddypress-wrap) input[type=reset]:hover,
#buddypress:is(.buddypress .buddypress-wrap) input[type=submit]:focus,
#buddypress:is(.buddypress .buddypress-wrap) input[type=submit]:hover {
  background-color: var(--panel);
  color: var(--text);
}

#buddypress:is(.buddypress .buddypress-wrap) .bp-list.grid .action a:focus,
#buddypress:is(.buddypress .buddypress-wrap) .bp-list.grid .action a:hover,
#buddypress:is(.buddypress .buddypress-wrap) .bp-list.grid .action button:focus,
#buddypress:is(.buddypress .buddypress-wrap) .bp-list.grid .action button:hover {
  background-color: var(--panel);
}

#buddypress.bp-single-vert-nav .bp-navs.vertical li:focus,
#buddypress.bp-single-vert-nav .bp-navs.vertical li:hover {
  background-color: var(--panel);
}

#buddypress.bp-dir-vert-nav .dir-navs ul li a:focus,
#buddypress.bp-dir-vert-nav .dir-navs ul li a:hover {
  background-color: var(--panel);
  color: var(--accent-ink);
}

/* W-CSSFIX-2 B: purple outline badges in every navigation state. */
#buddypress .bp-navs li a .count,
#buddypress.buddypress-wrap .bp-navs li a:focus .count,
#buddypress.buddypress-wrap .bp-navs li a:hover .count,
#buddypress.buddypress-wrap .bp-navs li a:hover a .count,
#buddypress.buddypress-wrap .bp-navs li.current a .count,
#buddypress.buddypress-wrap .bp-navs li.selected a .count {
  color: var(--accent-ink);
  background: none;
  border: 1px solid var(--accent);
}

/* W-CSSFIX-2 C: theme primary buttons keep their accent hover above block A. */
#buddypress:is(.buddypress .buddypress-wrap) :is(a, button).btn:is(.btn--primary, .btn--join):is(:hover, :focus),
#buddypress:is(.buddypress .buddypress-wrap) .vnc-community-actions :is(a.button, button):is(:hover, :focus),
#buddypress:is(.buddypress .buddypress-wrap) .vnc-topic input[type="submit"]:is(:hover, :focus),
#buddypress:is(.buddypress .buddypress-wrap) [class*="elementor-widget-vnc_community_"] .community-button:is(:hover, :focus) {
  background: var(--accent-ink);
  border-color: var(--accent-ink);
  color: var(--accent-contrast);
}
