/*
 * BuddyPress, bbPress and WordPress login core, on the kit's tokens (themes lane, 2026-11-04; owner: "COLOR SWITCH FIXES").
 * Every table, form control, notice, message list, activity item and comment form those cores print: tokens only, no literal
 * colour, both modes and every accent, switching at runtime without a reload (tokens change on <html data-theme>). Labels are
 * 4.5:1 or better. Inputs follow the estate chrome: field surface, hairline, a 2 px accent focus ring. The zebra is the surface
 * and the muted surface. `color-scheme` comes with the mode (nexus-tokens.css), so native selects, checkboxes and scrollbars
 * follow it. It sits above the cores' own sheets by one id (:not(#nx-shield)) and never uses !important.
 */
body.nx-site .buddypress-wrap:not(#nx-shield),
body.nx-site #bbpress-forums:not(#nx-shield),
body.nx-site #buddypress:not(#nx-shield) { color: var(--nx-text-primary); }

/* Text roles */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(p.description, .description, .bp-help-text, .field-visibility-settings-notoggle, .field-visibility-settings, .field-visibility-settings-toggle, .info-group-description, .bp-tooltip, .activity-meta a, .time-since, .meta, small) { color: var(--nx-text-secondary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(a:not(.button):not([class*="nf-ui"])) { color: var(--nx-accent); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(h1, h2, h3, h4, h5, h6, legend, label, .bp-label, th) { color: var(--nx-text-primary); }

/* Tables: profile settings, notification settings, message threads, group and member admin, user tables */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(table, table.profile-settings, table.notification-settings, table.bp-tables-user, table.wp-profile-fields, table#message-threads, .bp-tables-user, table.forum, table.members-list, table.groups-list) {
	inline-size: 100%;
	border: 1px solid var(--nx-border-hairline);
	border-collapse: collapse;
	border-radius: var(--nx-radius);
	background: transparent;
	color: var(--nx-text-primary);
	box-shadow: none;
}
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table :is(thead th, thead td, tfoot th, tfoot td, tr:first-child th.title) {
	background-color: var(--nx-bg-muted);
	border-color: var(--nx-border-hairline);
	color: var(--nx-text-secondary);
	font: 500 var(--nx-fs-xs, .75rem)/1.4 var(--nx-font-mono, inherit);
	letter-spacing: .06em;
	text-transform: uppercase;
}
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table :is(th, td) { padding: var(--nx-space-3, .75rem) var(--nx-space-4, 1rem); border: 0; border-block-end: 1px solid var(--nx-border-hairline); background-color: transparent; color: var(--nx-text-primary); text-align: start; vertical-align: middle; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table tbody tr:nth-child(odd) :is(th, td) { background-color: var(--nx-bg-surface); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table tbody tr:nth-child(even) :is(th, td) { background-color: var(--nx-bg-muted); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table tbody tr:is(:hover, :focus-within) :is(th, td) { background-color: var(--nx-bg-hover, var(--nx-bg-muted)); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table :is(td.field-name, th.field-name, td.label, th.label, tr.unread td, tr.unread th) { color: var(--nx-text-primary); font-weight: 600; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table :is(caption, .screen-reader-text) { color: var(--nx-text-primary); }

/* Forms: standard-form, profile edit, editfield, visibility toggles, fieldset and legend */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(form.standard-form, #profile-edit-form, #settings-form, #your-profile, .editfield, fieldset, .bp-profile-field, .field_type_textbox, .field_type_selectbox) { border-color: var(--nx-border-hairline); background-color: transparent; color: var(--nx-text-primary); box-shadow: none; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) fieldset { margin-block: var(--nx-space-4, 1rem); padding: var(--nx-space-4, 1rem); border: 1px solid var(--nx-border-hairline); border-radius: var(--nx-radius); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) legend { padding-inline: var(--nx-space-2, .5rem); font-weight: 600; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) label { display: block; margin-block-end: var(--nx-space-1, .25rem); font-weight: 600; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) label :is(input[type="checkbox"], input[type="radio"]) { margin-inline-end: var(--nx-space-2, .5rem); }
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) :is(input:not([type]), input[type="text"], input[type="email"], input[type="password"], input[type="url"], input[type="tel"], input[type="number"], input[type="search"], input[type="date"], input[type="datetime-local"], select, textarea) {
	box-sizing: border-box;
	max-inline-size: 100%;
	min-block-size: 2.5rem;
	padding: var(--nx-space-2, .5rem) var(--nx-space-3, .75rem);
	border: 1px solid var(--nx-border-hairline-strong);
	border-radius: var(--nx-radius);
	background-color: var(--nx-bg-surface);
	color: var(--nx-text-primary);
	font: 400 var(--nx-fs-md, 1rem)/1.4 var(--nx-font-sans, inherit);
	box-shadow: none;
}
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) textarea { min-block-size: 7rem; }
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) :is(input, select, textarea)::placeholder { color: var(--nx-text-muted); opacity: 1; }
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) :is(input, select, textarea):is(:focus, :focus-visible) { border-color: var(--nx-accent); outline: 2px solid var(--nx-accent); outline-offset: 1px; box-shadow: none; }
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) :is(input, select, textarea):disabled { background-color: var(--nx-bg-muted); color: var(--nx-text-muted); opacity: 1; cursor: not-allowed; }
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) :is(input[type="checkbox"], input[type="radio"], progress) { accent-color: var(--nx-accent); }
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) select option { background-color: var(--nx-bg-surface); color: var(--nx-text-primary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.field-visibility-settings-toggle a, a.visibility-toggle-link, .field-visibility-settings a) { color: var(--nx-accent); text-decoration: underline; text-underline-offset: .2em; }

/* Notices: info, success, warning, error. A tint and a hairline in the tone's chip tokens; the word and the icon carry the meaning too. */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.bp-feedback, #message, .bp-messages, .bp-messages.info, .bp-messages.updated, .bp-messages.error) {
	display: flex;
	align-items: flex-start;
	gap: var(--nx-space-3, .75rem);
	padding: var(--nx-space-3, .75rem) var(--nx-space-4, 1rem);
	border: 1px solid var(--nx-chip-info-line);
	border-radius: var(--nx-radius);
	background-color: var(--nx-chip-info-bg);
	color: var(--nx-chip-info-ink);
	box-shadow: none;
}
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.bp-feedback, #message, .bp-messages) :is(p, span, a, .bp-icon, strong) { color: inherit; background: transparent; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.bp-feedback.success, .bp-feedback.updated, .bp-messages.updated, #message.updated, .bp-feedback.bp-sitewide-notice) { border-color: var(--nx-chip-verified-line); background-color: var(--nx-chip-verified-bg); color: var(--nx-chip-verified-ink); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.bp-feedback.warning, .bp-feedback.loading, .bp-feedback.help) { border-color: var(--nx-chip-warning-line); background-color: var(--nx-chip-warning-bg); color: var(--nx-chip-warning-ink); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.bp-feedback.error, .bp-messages.error, #message.error) { border-color: var(--nx-critical); background-color: var(--nx-bg-muted); color: var(--nx-text-primary); }

/* Messages: threads, the conversation and its composer */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.message-thread, .thread-content, .message-content, .thread-subject, .thread-excerpt, .thread-from, .thread-info, #message-thread, .bp-messages-content, .message-metadata, .message-meta) { background-color: transparent; border-color: var(--nx-border-hairline); color: var(--nx-text-primary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.thread-excerpt, .message-metadata, .thread-date, .thread-from .from, .activity) { color: var(--nx-text-secondary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(#message-threads li, .message-lists li, .bp-messages-list li) { border-block-end: 1px solid var(--nx-border-hairline); background-color: transparent; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(#message-threads li.unread, .message-lists li.unread) { background-color: var(--nx-bg-muted); font-weight: 600; }

/* Activity: the list, its items, comments and the comment form */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.activity-list, .activity-list > li, .activity-item, .activity-inner, .activity-content, .activity-header, .activity-meta, .activity-comments, .activity-comments ul, .activity-comments li, .acomment-content, .acomment-meta, .acomment-options, .ac-form, .ac-reply-content, .ac-textarea, #whats-new-form, #whats-new-options, .activity-update-form) { background-color: transparent; border-color: var(--nx-border-hairline); color: var(--nx-text-primary); box-shadow: none; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.activity-list > li, .activity-update-form) { border: 1px solid var(--nx-border-hairline); border-radius: var(--nx-radius); background-color: var(--nx-bg-surface); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.acomment-meta, .acomment-meta a, .activity-meta, .activity-header .time-since) { color: var(--nx-text-secondary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.activity-comments li > .acomment-avatar img, .activity-avatar img, img.avatar) { border-radius: var(--nx-radius); background-color: var(--nx-bg-muted); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.ac-form, .ac-reply-content) { padding: var(--nx-space-3, .75rem); border: 1px solid var(--nx-border-hairline); border-radius: var(--nx-radius); }

/* WordPress login, register and lost password */
body.login { background-color: var(--nx-bg-canvas); color: var(--nx-text-primary); }
body.login :is(#login, #login h1 a) { color: var(--nx-text-primary); }
body.login #loginform, body.login #registerform, body.login #lostpasswordform, body.login #resetpassform { padding: var(--nx-space-5, 1.5rem); border: 1px solid var(--nx-border-hairline); border-radius: var(--nx-radius); background-color: var(--nx-bg-surface); color: var(--nx-text-primary); box-shadow: none; }
body.login label { color: var(--nx-text-primary); font-weight: 600; }
body.login :is(#nav a, #backtoblog a, .privacy-policy-page-link a, .message a, .forgetmenot label) { color: var(--nx-accent); }
body.login :is(.message, #login_error, .success, .notice) { padding: var(--nx-space-3, .75rem) var(--nx-space-4, 1rem); border: 1px solid var(--nx-border-hairline-strong); border-inline-start-width: 4px; border-radius: var(--nx-radius); background-color: var(--nx-bg-muted); color: var(--nx-text-primary); box-shadow: none; }
body.login #login_error { border-inline-start-color: var(--nx-critical); }
body.login :is(.message, .success) { border-inline-start-color: var(--nx-accent); }
body.login .button-primary { border: 1px solid var(--nx-primary-bg); border-radius: var(--nx-radius); background-color: var(--nx-primary-bg); color: var(--nx-primary-ink); text-shadow: none; box-shadow: none; }
body.login :is(.button-primary:hover, .button-primary:focus) { background-color: var(--nx-primary-hover, var(--nx-primary-bg)); color: var(--nx-primary-ink); }
body.login .button.wp-hide-pw { color: var(--nx-text-primary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table :is(tr, thead, tbody, tfoot) { border-color: var(--nx-border-hairline); background-color: transparent; box-shadow: none; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) table :is(thead tr, thead th, thead td) { border-block-end: 1px solid var(--nx-border-hairline-strong); }

/* The rest of product's both-mode audit (2026-11-04): group lists and descriptions, the avatar and cover upload warning, the editor toolbar
   wherever it appears, native select wrappers, bbPress admin links, "Reply" links. */
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.groups-list li, .members-list li, .item-list li, li .group-desc, .group-desc, .item-desc, .item-meta, .group-details, .bp-single-vert-nav, .select-wrap, .bp-groups-listing, ul.item-list, ul.item-list li) { background-color: transparent; border-color: var(--nx-border-hairline); color: var(--nx-text-primary); box-shadow: none; }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) :is(.group-desc, .item-desc, .item-meta, .group-details) { color: var(--nx-text-secondary); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) .select-wrap { border: 1px solid var(--nx-border-hairline-strong); border-radius: var(--nx-radius); background-color: var(--nx-bg-surface); }
body.nx-site :is(.buddypress-wrap, #buddypress):not(#nx-shield) .select-wrap select { border: 0; background-color: transparent; color: var(--nx-text-primary); }
body.nx-site :is(p.warning, .bp-avatar-nav, .bp-avatar-status, .avatar-nav-items, #avatar-upload, .drag-drop, .bp-uploader-window, #drag-drop-area) { background-color: var(--nx-chip-warning-bg); border-color: var(--nx-chip-warning-line); color: var(--nx-chip-warning-ink); }
body.nx-site :is(.quicktags-toolbar, .wp-editor-tools, .wp-editor-container, .mce-toolbar-grp, .wp-switch-editor, .html-active .switch-html, .tmce-active .switch-tmce) { background-color: var(--nx-bg-muted); border-color: var(--nx-border-hairline); color: var(--nx-text-primary); box-shadow: none; }
body.nx-site :is(.quicktags-toolbar input.button, .wp-switch-editor) { background-color: transparent; border: 1px solid var(--nx-border-hairline-strong); color: var(--nx-text-primary); }
body.nx-site #bbpress-forums:not(#nx-shield) :is(.bbp-admin-links, .bbp-admin-links a, .bbp-admin-links a:visited, a.bbp-reply-to-link, a.bbp-topic-reply-link) { color: var(--nx-text-secondary); }
body.nx-site #bbpress-forums:not(#nx-shield) :is(.bbp-admin-links a:hover, .bbp-admin-links a:focus-visible) { color: var(--nx-text-primary); }

/* The radius rule (owner 2026-11-04: "NO ROUNDED BUTTONS OR CHIPS ANYWHERE. EITHER 5 PX OR 2 PX CORNERS"): BuddyPress, bbPress and WordPress core
   shapes take the tokens: 5 px for buttons, inputs, selects, cards, panels and notices; 2 px for chips, badges, tags and count pills. Circles stay
   for avatars, radios and dots only. Chips and count pills carry no border: a tint and the strong ink. */
:is(body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums), body.nx-site.login):not(#nx-shield) :is(button, .button, input[type="submit"], input[type="button"], a.button, .generic-button a, .generic-button button, select, textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), .bp-feedback, fieldset, .activity-update-form, .activity-list > li, .ac-form, .bp-messages, .select-wrap, .bp-priority-nav-more, .hidden-items, table, .wp-editor-container) { border-radius: var(--nx-radius); }
body.nx-site :is(.buddypress-wrap, #buddypress, #bbpress-forums):not(#nx-shield) :is(.count, span.count, .bp-count, .unread-count, .badge, .bp-tag, .bbp-topic-tags a, .bbp-forum-topic-count, .item-badge, .member-type, .activity-badge, .nav-item-count, .bp-priority-nav-count) { border: 0; border-radius: var(--nx-radius-sm); background-color: var(--nx-bg-muted); color: var(--nx-text-primary); }
