:root {
	--ch-theme-blue: #0080ff;
	--ch-theme-blue-dark: #005fcc;
	--ch-theme-bg: #eef3f8;
	--ch-theme-surface: #ffffff;
	--ch-theme-surface-soft: #eef3f8;
	--ch-theme-text: #101828;
	--ch-theme-muted: #526174;
	--ch-theme-border: #c4cfdd;
	--ch-theme-shadow: 0 18px 50px rgba(16, 24, 40, .12);
	--ch-theme-radius: 18px;
	--ch-theme-max: 1180px;
	--ch-theme-wide: 1440px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body.ch-theme {
	min-height: 100%;
	margin: 0;
	color: var(--ch-theme-text);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.55;
}
body.ch-theme:not(.ch-theme-elementor-page) {
	background: radial-gradient(circle at top left, rgba(0,128,255,.12), transparent 30rem), var(--ch-theme-bg);
}
body.ch-theme.admin-bar .ch-theme-header { top: 32px; }
a { color: var(--ch-theme-blue-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; }

/* Critical: prevent Community Hub action/edit/dropdown menus from showing open by default. */
.ch-theme [hidden],
.ch-theme .ch-comment-menu-dropdown[hidden],
.ch-theme .ch-post-menu-dropdown[hidden],
.ch-theme .ch-activity-menu-dropdown[hidden],
.ch-theme .ch-repost-combo-menu[hidden],
.ch-theme .ch-repost-modal[hidden],
.ch-theme .ch-reply-form[hidden],
.ch-theme .ch-edit-form[hidden],
.ch-theme .ch-comment-edit-form[hidden],
.ch-theme .ch-profile-editor[hidden] {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.screen-reader-text,
.ch-theme-skip-link:not(:focus) {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ch-theme-skip-link:focus {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 9999;
	background: #fff;
	color: var(--ch-theme-text);
	padding: 10px 14px;
	border-radius: 10px;
	box-shadow: var(--ch-theme-shadow);
}
.ch-theme-container,
.ch-theme-header-inner,
.ch-theme-footer-inner {
	width: min(var(--ch-theme-max), calc(100% - 32px));
	margin: 0 auto;
}
.ch-theme-container--wide,
.ch-theme-header--wide .ch-theme-header-inner {
	width: min(var(--ch-theme-wide), calc(100% - 32px));
}

.ch-theme-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(255,255,255,.94);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--ch-theme-border);
}
.ch-theme-header-top { background: rgba(255,255,255,.96); }
.ch-theme-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 72px;
	padding: 10px 0;
}
.ch-theme-brand {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 160px;
	max-width: 320px;
	flex: 0 1 auto;
}
.ch-theme-site-title {
	font-weight: 900;
	font-size: clamp(1.05rem, 2vw, 1.32rem);
	letter-spacing: -.03em;
	line-height: 1.05;
	color: var(--ch-theme-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ch-theme-site-description {
	color: var(--ch-theme-muted);
	font-size: .8rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.custom-logo-link img { display: block; max-height: 56px; width: auto; }

.ch-theme-primary-menu--desktop {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	justify-content: center;
}
.ch-theme-primary-menu .ch-theme-menu-list,
.ch-theme-community-menu .ch-theme-menu-list,
.ch-theme-footer-menu-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 6px 14px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}
.ch-theme-primary-menu a,
.ch-theme-community-menu a,
.ch-theme-footer-menu a {
	color: var(--ch-theme-text);
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	padding: 8px 4px;
}
.ch-theme-primary-menu a:hover,
.ch-theme-community-menu a:hover,
.ch-theme-footer-menu a:hover {
	color: var(--ch-theme-blue-dark);
	text-decoration: none;
}
.ch-theme-primary-menu .sub-menu,
.ch-theme-community-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 8px;
	position: absolute;
	left: -999em;
	top: 100%;
	min-width: 210px;
	background: #fff;
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	box-shadow: var(--ch-theme-shadow);
	z-index: 1002;
}
.ch-theme-primary-menu li,
.ch-theme-community-menu li { position: relative; }
.ch-theme-primary-menu li:hover > .sub-menu,
.ch-theme-primary-menu li:focus-within > .sub-menu,
.ch-theme-community-menu li:hover > .sub-menu,
.ch-theme-community-menu li:focus-within > .sub-menu { left: 0; }
.ch-theme-primary-menu .sub-menu a,
.ch-theme-community-menu .sub-menu a {
	display: block;
	padding: 9px 10px;
	border-radius: 10px;
	white-space: nowrap;
}
.ch-theme-primary-menu .sub-menu a:hover,
.ch-theme-community-menu .sub-menu a:hover { background: var(--ch-theme-surface-soft); }

.ch-theme-header-widgets {
	flex: 0 1 220px;
	min-width: 0;
	font-size: .92rem;
}
.ch-theme-header-widgets .ch-theme-widget { margin: 0; }
.ch-theme-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	min-width: 0;
	flex: 0 0 auto;
}
.ch-theme-account {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}
.ch-theme-account-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ch-theme-text);
	font-weight: 850;
	max-width: 220px;
	min-width: 0;
	text-decoration: none;
}
.ch-theme-account-link:hover { text-decoration: none; color: var(--ch-theme-blue-dark); }
.ch-theme-account-link span {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ch-theme-account-avatar {
	width: 38px;
	height: 38px;
	border-radius: 999px;
	border: 2px solid #fff;
	box-shadow: 0 5px 18px rgba(16,24,40,.12);
	flex: 0 0 auto;
}
.ch-theme-login,
.ch-theme-logout,
.ch-theme-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: 32px;
	padding: 5px 9px;
	border-radius: 8px;
	border: 1px solid rgba(205,216,230,.98);
	background: #fff;
	color: #1d2939;
	font-weight: 760;
	font-size: .8rem;
	line-height: 1.1;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 2px 6px rgba(16,24,40,.045);
	white-space: nowrap;
}
.ch-theme-login:hover,
.ch-theme-logout:hover,
.ch-theme-button:hover {
	text-decoration: none;
	border-color: rgba(0,128,255,.35);
	color: var(--ch-theme-blue-dark);
}

.ch-theme-nav-bar {
	border-top: 1px solid rgba(217,227,240,.75);
	background: linear-gradient(180deg, rgba(248,251,255,.92), rgba(255,255,255,.88));
}
.ch-theme-header-inner--nav {
	min-height: 50px;
	padding: 7px 0;
	justify-content: center;
	gap: 14px;
}
.ch-theme-community-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	flex-wrap: wrap;
	min-width: 0;
}
.ch-theme-nav-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 38px;
	padding: 8px 13px;
	border-radius: 999px;
	border: 1px solid rgba(217,227,240,.95);
	background: #fff;
	color: #1d2939;
	font-weight: 850;
	font-size: .9rem;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 8px 22px rgba(16,24,40,.04);
	transition: transform .15s ease, border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
	white-space: nowrap;
}
.ch-theme-nav-pill:hover {
	transform: translateY(-1px);
	text-decoration: none;
	border-color: rgba(0,128,255,.35);
	box-shadow: 0 12px 28px rgba(0,128,255,.12);
}
.ch-theme-nav-pill.is-active {
	background: linear-gradient(135deg, var(--ch-theme-blue), var(--ch-theme-blue-dark));
	border-color: transparent;
	color: #fff;
	box-shadow: 0 14px 32px rgba(0,128,255,.22);
}
.ch-theme-nav-icon { font-size: 1rem; line-height: 1; }

.ch-theme-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
}
.ch-theme-menu-toggle-bars,
.ch-theme-menu-toggle-bars::before,
.ch-theme-menu-toggle-bars::after {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--ch-theme-text);
	border-radius: 999px;
	content: '';
	position: relative;
}
.ch-theme-menu-toggle-bars::before { position: absolute; top: -7px; }
.ch-theme-menu-toggle-bars::after { position: absolute; top: 7px; }
.ch-theme-menu-panel {
	display: none;
	position: absolute;
	top: 100%;
	left: 16px;
	right: 16px;
	background: #fff;
	border: 1px solid var(--ch-theme-border);
	border-radius: 18px;
	box-shadow: var(--ch-theme-shadow);
	padding: 14px;
	align-items: stretch;
	flex-direction: column;
	gap: 12px;
}
.ch-theme-menu-open .ch-theme-menu-panel { display: flex; }
.ch-theme-primary-menu--mobile .ch-theme-menu-list,
.ch-theme-community-menu--mobile .ch-theme-menu-list {
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
}
.ch-theme-primary-menu--mobile a,
.ch-theme-community-menu--mobile a {
	display: block;
	padding: 11px 12px;
	border-radius: 12px;
	background: var(--ch-theme-surface-soft);
}
.ch-theme-primary-menu--mobile .sub-menu,
.ch-theme-community-menu--mobile .sub-menu {
	position: static;
	left: auto;
	box-shadow: none;
	border-radius: 12px;
	margin-top: 6px;
	padding: 6px;
	background: #fff;
}

.ch-theme-main { padding: 28px 0 48px; min-height: calc(100vh - 160px); }
.ch-theme-main--elementor-blank { padding: 0; min-height: 0; }
.ch-theme-page-shell,
.ch-theme-content-wrap,
.ch-theme-error-card {
	background: rgba(255,255,255,.76);
	border: 1px solid rgba(217,227,240,.8);
	border-radius: var(--ch-theme-radius);
	box-shadow: var(--ch-theme-shadow);
	padding: 24px;
}
.ch-route-community .ch-theme-page-shell,
.ch-route-community .ch-theme-content-wrap,
.ch-theme-elementor-page .ch-theme-page-shell,
.ch-theme-elementor-page .ch-theme-content-wrap {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}
.ch-theme-page-header h1,
.ch-theme-single-header h1,
.ch-theme-error-card h1 {
	margin: 0 0 12px;
	font-size: clamp(2rem, 4vw, 3.2rem);
	letter-spacing: -.05em;
	line-height: 1.05;
}
.ch-theme-page-content > *:first-child,
.ch-theme-entry-content > *:first-child { margin-top: 0; }
.ch-theme-page-content > *:last-child,
.ch-theme-entry-content > *:last-child { margin-bottom: 0; }
.ch-theme-post-list { display: grid; gap: 18px; }
.ch-theme-post-card,
.ch-theme-single,
.ch-theme-empty {
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: var(--ch-theme-radius);
	box-shadow: var(--ch-theme-shadow);
	overflow: hidden;
}
.ch-theme-post-card-body,
.ch-theme-single { padding: 22px; }
.ch-theme-post-card h2 { margin: 0 0 8px; font-size: 1.35rem; }
.ch-theme-post-card h2 a { color: var(--ch-theme-text); }
.ch-theme-post-meta { color: var(--ch-theme-muted); font-size: .92rem; font-weight: 700; margin-bottom: 14px; }
.ch-theme-featured-image { margin: 18px 0; border-radius: 16px; overflow: hidden; }

.ch-theme-widget { margin: 0 0 18px; }
.ch-theme-widget-title { margin: 0 0 10px; font-size: 1rem; }
.ch-theme-footer-widgets { padding: 28px 0; }
.ch-theme-footer-widget-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}
.ch-theme-footer-widget-full { grid-column: 1 / -1; }
.ch-theme-footer {
	border-top: 1px solid var(--ch-theme-border);
	background: rgba(255,255,255,.76);
	padding: 24px 0;
}
.ch-theme-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; color: var(--ch-theme-muted); }

@media (max-width: 1180px) {
	.ch-theme-primary-menu--desktop { justify-content: flex-start; }
	.ch-theme-primary-menu .ch-theme-menu-list { justify-content: flex-start; }
	.ch-theme-account-link { max-width: 160px; }
}

@media (max-width: 960px) {
	body.ch-theme.admin-bar .ch-theme-header { top: 46px; }
	.ch-theme-header-inner { min-height: 64px; }
	.ch-theme-primary-menu--desktop,
	.ch-theme-nav-bar,
	.ch-theme-header-widgets { display: none; }
	.ch-theme-menu-toggle { display: inline-flex; }
	.ch-theme-header-actions > .ch-theme-account { display: none; }
	.ch-theme-community-nav { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
	.ch-theme-nav-pill { width: 100%; min-height: 44px; }
	.ch-theme-menu-panel .ch-theme-account { justify-content: space-between; border-top: 1px solid var(--ch-theme-border); padding-top: 12px; }
	.ch-theme-footer-widget-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
	.ch-theme-container,
	.ch-theme-header-inner,
	.ch-theme-footer-inner { width: min(100% - 20px, var(--ch-theme-max)); }
	.ch-theme-main { padding: 16px 0 34px; }
	.ch-theme-page-shell,
	.ch-theme-content-wrap,
	.ch-theme-error-card { padding: 14px; border-radius: 16px; }
	.ch-route-community .ch-theme-page-shell,
	.ch-route-community .ch-theme-content-wrap,
	.ch-theme-elementor-page .ch-theme-page-shell,
	.ch-theme-elementor-page .ch-theme-content-wrap { padding: 0; }
	.ch-theme-community-nav { grid-template-columns: 1fr; }
	.ch-theme-footer-inner { align-items: flex-start; flex-direction: column; }
	.ch-theme-site-description { display: none; }
	.ch-theme-footer-widget-grid { grid-template-columns: 1fr; }
}

/* v0.1.3: cleaner logged-in account dropdown and safer header spacing. */
.ch-theme-account--dropdown {
	position: relative;
}
.ch-theme-account-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	max-width: 240px;
	padding: 4px 10px 4px 4px;
	border-radius: 999px;
	border: 1px solid rgba(217,227,240,.95);
	background: #fff;
	color: var(--ch-theme-text);
	font: inherit;
	font-weight: 850;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(16,24,40,.05);
}
.ch-theme-account-toggle:hover,
.ch-theme-account-toggle:focus-visible {
	border-color: rgba(0,128,255,.35);
	box-shadow: 0 12px 28px rgba(0,128,255,.12);
	outline: none;
}
.ch-theme-account-name {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 145px;
}
.ch-theme-account-caret {
	font-size: 1rem;
	line-height: 1;
	color: var(--ch-theme-muted);
	transition: transform .15s ease;
}
.ch-theme-account.is-open .ch-theme-account-caret {
	transform: rotate(180deg);
}
.ch-theme-account-panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	width: min(280px, calc(100vw - 32px));
	padding: 10px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ch-theme-shadow);
	z-index: 1010;
}
.ch-theme-account.is-open .ch-theme-account-panel {
	display: block;
}
.ch-theme-account-panel-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px;
	margin-bottom: 6px;
	border-radius: 14px;
	background: var(--ch-theme-surface-soft);
}
.ch-theme-account-panel-head strong,
.ch-theme-account-panel-head span {
	display: block;
	max-width: 190px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ch-theme-account-panel-head span {
	color: var(--ch-theme-muted);
	font-size: .83rem;
	font-weight: 750;
}
.ch-theme-account-panel a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 11px;
	border-radius: 12px;
	color: var(--ch-theme-text);
	font-weight: 850;
	text-decoration: none;
}
.ch-theme-account-panel a:hover,
.ch-theme-account-panel a:focus-visible {
	background: var(--ch-theme-surface-soft);
	color: var(--ch-theme-blue-dark);
	outline: none;
	text-decoration: none;
}
.ch-theme-account-panel .ch-theme-account-logout {
	margin-top: 6px;
	border-top: 1px solid var(--ch-theme-border);
	border-radius: 0 0 12px 12px;
	color: #b42318;
}
.ch-theme-account-panel .ch-theme-account-logout:hover,
.ch-theme-account-panel .ch-theme-account-logout:focus-visible {
	background: #fff4f3;
	color: #912018;
}

@media (max-width: 960px) {
	.ch-theme-menu-panel .ch-theme-account--dropdown {
		display: block;
		border-top: 1px solid var(--ch-theme-border);
		padding-top: 12px;
	}
	.ch-theme-menu-panel .ch-theme-account-toggle {
		width: 100%;
		max-width: none;
		justify-content: flex-start;
	}
	.ch-theme-menu-panel .ch-theme-account-name {
		max-width: none;
		flex: 1;
		text-align: left;
	}
	.ch-theme-menu-panel .ch-theme-account-panel {
		position: static;
		width: 100%;
		margin-top: 10px;
		box-shadow: none;
	}
}

@media (max-width: 480px) {
	.ch-theme-brand {
		min-width: 0;
		max-width: 68vw;
	}
	.custom-logo-link img {
		max-height: 48px;
	}
}

/* v0.1.4: global theme polish, footer/widgets, sidebar, forms, archives, WooCommerce baseline. */
.ch-theme-layout {
	display: grid;
	gap: 24px;
	align-items: start;
}
.ch-theme-layout--sidebar {
	grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
}
.ch-theme-layout--no-sidebar {
	grid-template-columns: minmax(0, 1fr);
}
.ch-theme-sidebar {
	background: rgba(255,255,255,.82);
	border: 1px solid rgba(217,227,240,.86);
	border-radius: var(--ch-theme-radius);
	box-shadow: var(--ch-theme-shadow);
	padding: 18px;
	position: sticky;
	top: 104px;
}
.ch-theme-sidebar .ch-theme-widget,
.ch-theme-footer-widgets .ch-theme-widget {
	background: rgba(255,255,255,.72);
	border: 1px solid rgba(217,227,240,.7);
	border-radius: 16px;
	padding: 16px;
}
.ch-theme-footer-widgets {
	background: linear-gradient(180deg, rgba(248,251,255,.24), rgba(255,255,255,.78));
	border-top: 1px solid rgba(217,227,240,.75);
}
.ch-theme-footer-widgets--wide .ch-theme-container,
.ch-theme-footer--wide .ch-theme-footer-inner {
	width: min(var(--ch-theme-wide), calc(100% - 32px));
}
.ch-theme-widget ul,
.ch-theme-widget ol {
	padding-left: 1.2rem;
	margin: .5rem 0 0;
}
.ch-theme-widget li + li { margin-top: .35rem; }
.ch-theme-widget a { font-weight: 750; }
.ch-theme-widget-title {
	font-weight: 900;
	letter-spacing: -.025em;
	color: var(--ch-theme-text);
}
.ch-theme-footer-widget-grid .ch-theme-widget-title {
	font-size: 1.06rem;
}
.ch-theme-footer-brand {
	font-weight: 850;
	color: var(--ch-theme-text);
}
.ch-theme-footer-menu-list {
	justify-content: flex-end;
}
.ch-theme-footer-menu a {
	color: var(--ch-theme-muted);
}
.ch-theme-footer-menu a:hover {
	color: var(--ch-theme-blue-dark);
}

.ch-theme-page-header,
.ch-theme-single-header,
.ch-theme-archive-header,
.ch-theme-search-header {
	margin-bottom: 20px;
}
.ch-theme-archive-description,
.ch-theme-page-header p {
	color: var(--ch-theme-muted);
	font-weight: 650;
}
.ch-theme-entry-content,
.ch-theme-page-content {
	font-size: 1rem;
}
.ch-theme-entry-content h1,
.ch-theme-entry-content h2,
.ch-theme-entry-content h3,
.ch-theme-page-content h1,
.ch-theme-page-content h2,
.ch-theme-page-content h3 {
	letter-spacing: -.035em;
	line-height: 1.14;
}
.ch-theme-entry-content table,
.ch-theme-page-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	background: #fff;
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	overflow: hidden;
}
.ch-theme-entry-content th,
.ch-theme-entry-content td,
.ch-theme-page-content th,
.ch-theme-page-content td {
	border-bottom: 1px solid var(--ch-theme-border);
	padding: 10px 12px;
	text-align: left;
}
.ch-theme-entry-content blockquote,
.ch-theme-page-content blockquote {
	margin: 1.25rem 0;
	padding: 14px 18px;
	border-left: 4px solid var(--ch-theme-blue);
	background: var(--ch-theme-surface-soft);
	border-radius: 0 14px 14px 0;
	color: #344054;
}

.ch-theme-search-form {
	display: flex;
	gap: 10px;
	align-items: center;
	max-width: 620px;
	margin: 14px 0 0;
}
.ch-theme-search-form label { flex: 1; min-width: 0; }
.ch-theme-search-field,
.ch-theme input[type="text"],
.ch-theme input[type="email"],
.ch-theme input[type="url"],
.ch-theme input[type="password"],
.ch-theme input[type="search"],
.ch-theme input[type="number"],
.ch-theme textarea,
.ch-theme select {
	width: 100%;
	min-height: 42px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 12px;
	background: #fff;
	color: var(--ch-theme-text);
	padding: 10px 12px;
	font: inherit;
	box-shadow: 0 4px 14px rgba(16,24,40,.03);
}
.ch-theme textarea { min-height: 130px; }
.ch-theme input:focus,
.ch-theme textarea:focus,
.ch-theme select:focus {
	outline: none;
	border-color: rgba(0,128,255,.62);
	box-shadow: 0 0 0 4px rgba(0,128,255,.12);
}
.ch-theme button,
.ch-theme input[type="submit"],
.ch-theme-search-submit,
.ch-theme .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	border: 1px solid color-mix(in srgb, var(--ch-theme-blue-dark) 72%, #0b65b8 28%);
	border-radius: 8px;
	background: linear-gradient(180deg, color-mix(in srgb, var(--ch-theme-blue) 94%, #fff 6%), var(--ch-theme-blue-dark));
	color: #fff;
	font-weight: 780;
	font-size: .8rem;
	line-height: 1.1;
	padding: 6px 10px;
	min-height: 32px;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 2px 7px rgba(0,128,255,.10);
}
.ch-theme-page-content button:hover,
.ch-theme-page-content input[type="submit"]:hover,
.ch-theme-entry-content button:hover,
.ch-theme-entry-content input[type="submit"]:hover,
.comment-form input[type="submit"]:hover,
.ch-theme-search-submit:hover,
.ch-theme .wp-block-button__link:hover {
	filter: brightness(.985);
	text-decoration: none;
	transform: translateY(-1px);
}

.navigation.pagination,
.post-navigation,
.posts-navigation {
	margin-top: 22px;
}
.nav-links {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
}
.page-numbers,
.nav-links a,
.nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	min-height: 38px;
	padding: 8px 12px;
	border-radius: 999px;
	border: 1px solid var(--ch-theme-border);
	background: #fff;
	font-weight: 850;
	text-decoration: none;
}
.page-numbers.current,
.nav-links .current {
	background: var(--ch-theme-blue);
	border-color: var(--ch-theme-blue);
	color: #fff;
}

.comments-area {
	margin-top: 22px;
	background: #fff;
	border: 1px solid var(--ch-theme-border);
	border-radius: var(--ch-theme-radius);
	box-shadow: var(--ch-theme-shadow);
	padding: 22px;
}
.comment-list {
	padding-left: 0;
	list-style: none;
}
.comment-list .comment {
	border-top: 1px solid var(--ch-theme-border);
	padding-top: 14px;
	margin-top: 14px;
}
.comment-reply-title,
.comments-title {
	margin-top: 0;
	letter-spacing: -.025em;
}

.woocommerce .woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-ordering {
	color: var(--ch-theme-muted);
	font-weight: 700;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce div.product,
.woocommerce-cart-form,
.woocommerce-checkout-review-order,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: #fff;
	border: 1px solid var(--ch-theme-border);
	border-radius: var(--ch-theme-radius);
	box-shadow: var(--ch-theme-shadow);
	padding: 16px;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button {
	border-radius: 8px !important;
	background: linear-gradient(180deg, var(--ch-theme-blue), var(--ch-theme-blue-dark)) !important;
	color: #fff !important;
	font-weight: 780 !important;
	font-size: .8rem !important;
	line-height: 1.1 !important;
	min-height: 32px !important;
	padding: 6px 10px !important;
	box-shadow: 0 2px 7px rgba(0,128,255,.10) !important;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: 16px;
	background: #fff;
	border-top-color: var(--ch-theme-blue);
	box-shadow: 0 10px 28px rgba(16,24,40,.06);
}

body.ch-theme.ch-theme-elementor-page .ch-theme-main--page,
body.ch-theme .elementor-page .ch-theme-main--page {
	padding-top: 0;
}
body.ch-theme.ch-theme-elementor-page .ch-theme-page-shell {
	max-width: none;
}

@media (max-width: 960px) {
	.ch-theme-layout--sidebar {
		grid-template-columns: 1fr;
	}
	.ch-theme-sidebar {
		position: static;
	}
	.ch-theme-search-form {
		align-items: stretch;
		flex-direction: column;
	}
	.ch-theme-footer-menu-list {
		justify-content: flex-start;
	}
}

@media (max-width: 620px) {
	.ch-theme-sidebar,
	.comments-area,
	.ch-theme-sidebar .ch-theme-widget,
	.ch-theme-footer-widgets .ch-theme-widget {
		padding: 14px;
		border-radius: 16px;
	}
	.ch-theme-footer-widgets--wide .ch-theme-container,
	.ch-theme-footer--wide .ch-theme-footer-inner {
		width: min(100% - 20px, var(--ch-theme-max));
	}
}

/* v0.1.5: sidebar visibility fix, blog polish, WooCommerce polish. */
.ch-theme-main--blog .ch-theme-content-wrap,
.ch-theme-main--archive .ch-theme-content-wrap,
.ch-theme-main.search .ch-theme-content-wrap {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

.ch-theme-blog-hero,
.ch-theme-archive-header,
.ch-theme-search-header {
	background: linear-gradient(135deg, rgba(0,128,255,.12), rgba(255,255,255,.92));
	border: 1px solid rgba(217,227,240,.88);
	border-radius: 24px;
	box-shadow: 0 18px 45px rgba(16,24,40,.07);
	padding: clamp(22px, 4vw, 36px);
	margin-bottom: 20px;
	overflow: hidden;
	position: relative;
}
.ch-theme-blog-hero:after,
.ch-theme-archive-header:after,
.ch-theme-search-header:after {
	content: "";
	position: absolute;
	right: -80px;
	top: -90px;
	width: 220px;
	height: 220px;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(0,128,255,.22), transparent 68%);
	pointer-events: none;
}
.ch-theme-eyebrow,
.ch-theme-post-kicker span {
	display: inline-flex;
	align-items: center;
	width: max-content;
	max-width: 100%;
	border-radius: 999px;
	background: rgba(0,128,255,.1);
	color: var(--ch-theme-blue-dark);
	border: 1px solid rgba(0,128,255,.2);
	font-size: .78rem;
	font-weight: 950;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 5px 9px;
	margin-bottom: 10px;
}
.ch-theme-blog-hero h1,
.ch-theme-archive-header h1,
.ch-theme-search-header h1 {
	margin: 0;
	font-size: clamp(2.1rem, 5vw, 4.1rem);
	line-height: .98;
	letter-spacing: -.065em;
}
.ch-theme-blog-hero p,
.ch-theme-archive-description,
.ch-theme-search-header p {
	max-width: 680px;
	margin: 10px 0 0;
	color: var(--ch-theme-muted);
	font-weight: 750;
}

.ch-theme-post-list--blog,
.ch-theme-main--archive .ch-theme-post-list,
.ch-theme-main--search .ch-theme-post-list,
.ch-theme-main .ch-theme-post-list {
	gap: 22px;
}
.ch-theme-post-card {
	display: grid;
	grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
	min-height: 230px;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ch-theme-post-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 24px 58px rgba(16,24,40,.11);
	border-color: rgba(0,128,255,.22);
}
.ch-theme-post-thumb {
	display: block;
	min-height: 100%;
	background: linear-gradient(135deg, rgba(0,128,255,.12), rgba(16,24,40,.05));
	overflow: hidden;
}
.ch-theme-post-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 230px;
	object-fit: cover;
	transition: transform .28s ease;
}
.ch-theme-post-card:hover .ch-theme-post-thumb img {
	transform: scale(1.035);
}
.ch-theme-post-thumb--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
.ch-theme-post-thumb--placeholder span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 86px;
	height: 86px;
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 18px 38px rgba(16,24,40,.1);
	color: var(--ch-theme-blue-dark);
	font-size: 2.4rem;
	font-weight: 950;
	letter-spacing: -.08em;
}
.ch-theme-post-card-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	padding: clamp(20px, 3vw, 30px);
}
.ch-theme-post-kicker {
	min-height: 24px;
}
.ch-theme-post-card h2 {
	font-size: clamp(1.45rem, 2.5vw, 2.15rem);
	line-height: 1.05;
	letter-spacing: -.055em;
	margin: 0 0 8px;
}
.ch-theme-post-card h2 a:hover {
	color: var(--ch-theme-blue-dark);
	text-decoration: none;
}
.ch-theme-post-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 0;
}
.ch-theme-post-excerpt {
	color: #344054;
	font-weight: 600;
}
.ch-theme-post-excerpt p {
	margin-top: 0;
}
.ch-theme-read-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: max-content;
	border-radius: 999px;
	background: var(--ch-theme-surface-soft);
	border: 1px solid rgba(0,128,255,.16);
	color: var(--ch-theme-blue-dark);
	font-weight: 950;
	padding: 9px 13px;
	text-decoration: none;
}
.ch-theme-read-more:hover {
	background: rgba(0,128,255,.1);
	text-decoration: none;
}

.ch-theme-layout--sidebar .ch-theme-content-wrap,
.ch-theme-layout--sidebar .ch-theme-page-shell {
	min-width: 0;
}
.ch-theme-sidebar {
	background: rgba(255,255,255,.9);
}
.ch-theme-sidebar .ch-theme-widget {
	margin-bottom: 14px;
}
.ch-theme-sidebar .ch-theme-widget:last-child {
	margin-bottom: 0;
}
.ch-theme-sidebar .wp-block-search__inside-wrapper {
	display: flex;
	gap: 8px;
}
.ch-theme-sidebar .wp-block-search__button {
	white-space: nowrap;
}

.ch-theme-main--woocommerce .ch-theme-container {
	background: transparent;
}
.woocommerce .woocommerce-breadcrumb {
	background: rgba(255,255,255,.76);
	border: 1px solid var(--ch-theme-border);
	border-radius: 999px;
	display: inline-flex;
	padding: 8px 12px;
	margin-bottom: 16px;
}
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 0 18px !important;
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	transform: translateY(-2px);
	box-shadow: 0 24px 58px rgba(16,24,40,.11);
	border-color: rgba(0,128,255,.22);
}
.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0 0 14px !important;
	background: var(--ch-theme-surface-soft);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .button {
	margin-left: 16px !important;
	margin-right: 16px !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.08rem !important;
	font-weight: 950;
	letter-spacing: -.03em;
	color: var(--ch-theme-text);
}
.woocommerce ul.products li.product .price {
	color: var(--ch-theme-blue-dark) !important;
	font-weight: 950 !important;
}
.woocommerce div.product {
	padding: clamp(18px, 3vw, 28px);
}
.woocommerce div.product .product_title {
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: -.06em;
	line-height: 1;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ch-theme-blue-dark);
	font-size: 1.45rem;
	font-weight: 950;
}
.woocommerce-cart-form,
.woocommerce-checkout-review-order,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	padding: clamp(18px, 3vw, 26px);
}
.woocommerce table.shop_table {
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
}
.woocommerce table.shop_table th {
	background: var(--ch-theme-surface-soft);
	font-weight: 950;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	border-radius: 12px;
	background: var(--ch-theme-surface-soft);
	padding: 10px 12px;
	font-weight: 850;
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	background: rgba(0,128,255,.1);
	color: var(--ch-theme-blue-dark);
}

@media (max-width: 1020px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.ch-theme-post-card {
		grid-template-columns: 1fr;
	}
	.ch-theme-post-thumb img,
	.ch-theme-post-thumb {
		min-height: 190px;
	}
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
	.ch-theme-sidebar .wp-block-search__inside-wrapper {
		flex-direction: column;
	}
}


/* =========================================================
   Community Hub plugin compatibility: social action buttons
   The global theme button style should not turn Like/Comment/Repost/Share/Saved
   into large gradient CTA buttons inside the Community Hub feed.
   ========================================================= */
.ch-theme .ch-feed .ch-action-row button,
.ch-theme .ch-feed .ch-action-row .ch-action-button,
.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
.ch-theme .ch-activity-card .ch-action-row button,
.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
.ch-theme .ch-repost-combo-button,
.ch-theme .ch-bookmark-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 34px !important;
  width: auto !important;
  max-width: none !important;
  padding: 7px 11px !important;
  border-radius: 999px !important;
  border: 1px solid transparent !important;
  background: #f8fafc !important;
  background-image: none !important;
  color: #334155 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.ch-theme .ch-feed .ch-action-row button:hover,
.ch-theme .ch-feed .ch-action-row .ch-action-button:hover,
.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger:hover,
.ch-theme .ch-activity-card .ch-action-row button:hover,
.ch-theme .ch-activity-card .ch-action-row .ch-action-button:hover,
.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger:hover,
.ch-theme .ch-repost-combo-button:hover,
.ch-theme .ch-bookmark-button:hover {
  background: #eff6ff !important;
  background-image: none !important;
  border-color: #bfdbfe !important;
  color: #1d4ed8 !important;
  box-shadow: 0 5px 14px rgba(37, 99, 235, 0.10) !important;
  filter: none !important;
  transform: none !important;
  text-decoration: none !important;
}

.ch-theme .ch-feed .ch-action-row .is-liked,
.ch-theme .ch-feed .ch-action-row .is-saved,
.ch-theme .ch-activity-card .ch-action-row .is-liked,
.ch-theme .ch-activity-card .ch-action-row .is-saved,
.ch-theme .ch-bookmark-button.is-saved {
  background: #2563eb !important;
  background-image: none !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.18) !important;
}

.ch-theme .ch-action-row {
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.ch-theme .ch-repost-combo {
  display: inline-flex !important;
  align-items: center !important;
  position: relative !important;
}

/* Repost embed author names should look like names, not bright body links. */
.ch-theme .ch-repost-embed-header a,
.ch-theme .ch-repost-embed-name,
.ch-theme a.ch-repost-embed-name,
.ch-theme .ch-repost-embed-name a,
.ch-theme .ch-repost-embed-user a:not(.ch-repost-embed-time) {
  color: #111827 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

.ch-theme .ch-repost-embed-header a:hover,
.ch-theme a.ch-repost-embed-name:hover,
.ch-theme .ch-repost-embed-name a:hover,
.ch-theme .ch-repost-embed-user a:not(.ch-repost-embed-time):hover {
  color: #1d4ed8 !important;
  text-decoration: none !important;
}

.ch-theme .ch-repost-embed-time,
.ch-theme .ch-repost-embed-time a,
.ch-theme a.ch-repost-embed-time {
  color: #64748b !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

@media (max-width: 760px) {
  .ch-theme .ch-feed .ch-action-row button,
  .ch-theme .ch-feed .ch-action-row .ch-action-button,
  .ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
  .ch-theme .ch-activity-card .ch-action-row button,
  .ch-theme .ch-activity-card .ch-action-row .ch-action-button,
  .ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
  .ch-theme .ch-repost-combo-button,
  .ch-theme .ch-bookmark-button {
    min-height: 32px !important;
    padding: 7px 10px !important;
    font-size: 12.5px !important;
  }
}

/* =========================================================
   v0.1.7: sidebar reliability, compact blog options,
   WooCommerce typography, and Community Hub action polish.
   ========================================================= */

/* Admin/body-driven blog density options. */
.ch-theme-blog-layout-compact .ch-theme-post-list--blog,
.ch-theme-blog-layout-compact.blog .ch-theme-post-list,
.ch-theme-blog-layout-compact.home .ch-theme-post-list {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
}

.ch-theme-blog-layout-compact .ch-theme-post-card {
	border-radius: 18px;
}

.ch-theme-blog-layout-compact .ch-theme-post-thumb,
.ch-theme-blog-layout-compact .ch-theme-post-thumb img,
.ch-theme-blog-layout-compact .ch-theme-post-placeholder {
	min-height: 150px;
	max-height: 190px;
}

.ch-theme-blog-layout-compact .ch-theme-post-body {
	padding: 16px;
}

.ch-theme-blog-layout-compact .ch-theme-post-title {
	font-size: clamp(1.05rem, 1.65vw, 1.32rem);
	line-height: 1.15;
}

.ch-theme-blog-layout-compact .ch-theme-post-excerpt {
	font-size: .94rem;
	line-height: 1.45;
}

.ch-theme-blog-layout-dense .ch-theme-blog-hero {
	padding: 20px;
	margin-bottom: 16px;
}

.ch-theme-blog-layout-dense .ch-theme-post-list--blog,
.ch-theme-blog-layout-dense.blog .ch-theme-post-list,
.ch-theme-blog-layout-dense.home .ch-theme-post-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.ch-theme-blog-layout-dense .ch-theme-post-card {
	display: grid;
	grid-template-columns: 160px 1fr;
	align-items: stretch;
	border-radius: 16px;
}

.ch-theme-blog-layout-dense .ch-theme-post-thumb,
.ch-theme-blog-layout-dense .ch-theme-post-thumb img,
.ch-theme-blog-layout-dense .ch-theme-post-placeholder {
	min-height: 100%;
	height: 100%;
}

.ch-theme-blog-layout-dense .ch-theme-post-body {
	padding: 14px 16px;
}

.ch-theme-blog-layout-dense .ch-theme-post-title {
	font-size: 1.05rem;
	line-height: 1.18;
	margin-bottom: 6px;
}

.ch-theme-blog-layout-dense .ch-theme-post-meta,
.ch-theme-blog-layout-dense .ch-theme-post-excerpt {
	font-size: .86rem;
}

.ch-theme-blog-layout-dense .ch-theme-read-more {
	padding: 8px 11px;
	font-size: .84rem;
}

/* Sidebar should be visibly styled when it is enabled and has widgets. */
.ch-theme-sidebar {
	align-self: start;
	min-width: 0;
}

.ch-theme-sidebar .ch-theme-widget,
.ch-theme-sidebar .widget,
.ch-theme-sidebar section {
	background: rgba(255,255,255,.94);
	border: 1px solid var(--ch-theme-border);
	border-radius: 18px;
	box-shadow: 0 14px 34px rgba(16,24,40,.07);
	padding: 18px;
	margin: 0 0 16px;
	color: var(--ch-theme-text);
}

.ch-theme-sidebar .ch-theme-widget-title,
.ch-theme-sidebar .widget-title,
.ch-theme-sidebar h2,
.ch-theme-sidebar h3 {
	font-size: .96rem;
	line-height: 1.2;
	font-weight: 900;
	margin: 0 0 12px;
	color: var(--ch-theme-text);
}

.ch-theme-sidebar ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ch-theme-sidebar li + li {
	border-top: 1px solid rgba(217,227,240,.75);
	margin-top: 8px;
	padding-top: 8px;
}

/* WooCommerce text readability and cleaner product spacing. */
.woocommerce,
.woocommerce-page {
	color: var(--ch-theme-text);
}

.woocommerce p,
.woocommerce li,
.woocommerce table,
.woocommerce form,
.woocommerce .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce .woocommerce-MyAccount-content {
	color: #263244;
	font-size: 16px;
	line-height: 1.65;
}

.woocommerce small,
.woocommerce .woocommerce-result-count,
.woocommerce .product_meta,
.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-review__published-date {
	color: #64748b;
}

.woocommerce div.product .product_title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce h1,
.woocommerce h2,
.woocommerce h3 {
	color: #0f172a;
	letter-spacing: -.02em;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ch-theme-blue-dark);
	font-weight: 900;
}

.woocommerce .quantity .qty,
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select {
	color: #111827;
	background: #fff;
	border: 1px solid #dbe5f2;
	border-radius: 12px;
}

/* Community Hub social buttons: polished compact app controls, not CTA buttons. */
.ch-theme .ch-feed .ch-action-row,
.ch-theme .ch-activity-card .ch-action-row {
	gap: 6px !important;
	padding: 10px 0 !important;
	border-top: 1px solid #e7edf5 !important;
	border-bottom: 1px solid #e7edf5 !important;
	background: transparent !important;
}

.ch-theme .ch-feed .ch-action-row button,
.ch-theme .ch-feed .ch-action-row .ch-action-button,
.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
.ch-theme .ch-activity-card .ch-action-row button,
.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
.ch-theme .ch-repost-combo-button,
.ch-theme .ch-bookmark-button {
	appearance: none !important;
	-webkit-appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 5px !important;
	min-height: 32px !important;
	width: auto !important;
	max-width: none !important;
	padding: 6px 10px !important;
	border-radius: 10px !important;
	border: 1px solid transparent !important;
	background: transparent !important;
	background-image: none !important;
	color: #475569 !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	filter: none !important;
}

.ch-theme .ch-feed .ch-action-row button:hover,
.ch-theme .ch-feed .ch-action-row .ch-action-button:hover,
.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger:hover,
.ch-theme .ch-activity-card .ch-action-row button:hover,
.ch-theme .ch-activity-card .ch-action-row .ch-action-button:hover,
.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger:hover,
.ch-theme .ch-repost-combo-button:hover,
.ch-theme .ch-bookmark-button:hover {
	background: #f1f7ff !important;
	background-image: none !important;
	border-color: #d9eaff !important;
	color: #005fcc !important;
	box-shadow: none !important;
	filter: none !important;
	transform: none !important;
	text-decoration: none !important;
}

.ch-theme .ch-feed .ch-action-row .is-liked,
.ch-theme .ch-feed .ch-action-row .is-saved,
.ch-theme .ch-activity-card .ch-action-row .is-liked,
.ch-theme .ch-activity-card .ch-action-row .is-saved,
.ch-theme .ch-bookmark-button.is-saved {
	background: rgba(0,128,255,.10) !important;
	background-image: none !important;
	border-color: rgba(0,128,255,.22) !important;
	color: #005fcc !important;
	box-shadow: none !important;
}

.ch-theme .ch-repost-combo-menu button {
	border-radius: 10px !important;
	background: #fff !important;
	color: #172033 !important;
}

/* Keep repost embedded author names readable and not theme-link-blue. */
.ch-theme .ch-repost-embed-header a,
.ch-theme .ch-repost-embed-name,
.ch-theme a.ch-repost-embed-name,
.ch-theme .ch-repost-embed-name a,
.ch-theme .ch-repost-embed-user a:not(.ch-repost-embed-time) {
	color: #111827 !important;
	font-weight: 900 !important;
	text-decoration: none !important;
}

.ch-theme .ch-repost-embed-header a:hover,
.ch-theme a.ch-repost-embed-name:hover,
.ch-theme .ch-repost-embed-name a:hover,
.ch-theme .ch-repost-embed-user a:not(.ch-repost-embed-time):hover {
	color: #005fcc !important;
	text-decoration: none !important;
}

@media (max-width: 760px) {
	.ch-theme-blog-layout-dense .ch-theme-post-card {
		grid-template-columns: 108px 1fr;
	}
	.ch-theme-blog-layout-dense .ch-theme-post-excerpt {
		display: none;
	}
	.ch-theme .ch-feed .ch-action-row,
	.ch-theme .ch-activity-card .ch-action-row {
		justify-content: space-between !important;
	}
	.ch-theme .ch-feed .ch-action-row button,
	.ch-theme .ch-feed .ch-action-row .ch-action-button,
	.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
	.ch-theme .ch-activity-card .ch-action-row button,
	.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
	.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
	.ch-theme .ch-repost-combo-button,
	.ch-theme .ch-bookmark-button {
		padding: 6px 7px !important;
		font-size: 12px !important;
		min-height: 30px !important;
	}
}


/* =========================================================
   v0.1.8: Customizer stability, sidebar visibility,
   compact-grid fix, single post polish, WooCommerce polish.
   ========================================================= */

/* Prevent Customizer preview changes from creating jumpy nested layouts on routed Community pages. */
.customize-preview.ch-route-community .ch-theme-main,
.customize-preview.ch-route-community .ch-theme-container {
	min-height: 0;
}

/* Sidebar should be visible on normal blog/post/page screens when enabled, even before widgets are assigned. */
.ch-theme-layout--sidebar {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 340px) !important;
	gap: 28px !important;
	align-items: start !important;
}

.ch-theme-layout--sidebar > .ch-theme-content-wrap,
.ch-theme-layout--sidebar > .ch-theme-page-shell {
	min-width: 0;
}

.ch-theme-sidebar-empty p {
	margin: 0;
	color: #64748b;
	font-weight: 700;
	line-height: 1.5;
}

/* Compact grid fix: the old selectors missed the real card body class, allowing large text overflow. */
.ch-theme-blog-layout-compact .ch-theme-post-list,
.ch-theme-blog-layout-compact .ch-theme-post-list--blog {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 18px;
}

.ch-theme-blog-layout-compact .ch-theme-post-card {
	min-width: 0;
	overflow: hidden;
}

.ch-theme-blog-layout-compact .ch-theme-post-card-body,
.ch-theme-blog-layout-compact .ch-theme-post-body {
	padding: 14px 15px 15px !important;
	min-width: 0;
}

.ch-theme-blog-layout-compact .ch-theme-post-title,
.ch-theme-blog-layout-compact .ch-theme-post-card h2 {
	font-size: clamp(1rem, 1.15vw, 1.16rem) !important;
	line-height: 1.2 !important;
	margin: 6px 0 8px !important;
	letter-spacing: -.015em;
	overflow-wrap: anywhere;
	word-break: normal;
}

.ch-theme-blog-layout-compact .ch-theme-post-title a,
.ch-theme-blog-layout-compact .ch-theme-post-card h2 a {
	color: #0f172a;
	text-decoration: none;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ch-theme-blog-layout-compact .ch-theme-post-excerpt {
	font-size: .88rem !important;
	line-height: 1.45 !important;
	color: #475569;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ch-theme-blog-layout-compact .ch-theme-post-excerpt p {
	margin: 0;
}

.ch-theme-blog-layout-compact .ch-theme-post-thumb,
.ch-theme-blog-layout-compact .ch-theme-post-thumb img,
.ch-theme-blog-layout-compact .ch-theme-post-placeholder {
	min-height: 132px !important;
	height: 150px !important;
	max-height: 150px !important;
}

.ch-theme-blog-layout-compact .ch-theme-read-more {
	padding: 8px 11px !important;
	font-size: .82rem !important;
	border-radius: 999px;
}

/* Single blog post polish. */
.ch-theme-single {
	background: rgba(255,255,255,.96);
	border: 1px solid #e1eaf5;
	border-radius: 28px;
	box-shadow: 0 22px 56px rgba(15,23,42,.08);
	overflow: hidden;
}

.ch-theme-single-header {
	padding: clamp(26px, 4vw, 52px) clamp(20px, 5vw, 64px) 22px;
	background: linear-gradient(135deg, rgba(0,128,255,.10), rgba(255,255,255,.86));
	border-bottom: 1px solid rgba(225,234,245,.9);
}

.ch-theme-single-kicker {
	display: inline-flex;
	align-items: center;
	padding: 7px 11px;
	border-radius: 999px;
	background: #eaf4ff;
	color: #005fcc;
	font-size: .78rem;
	font-weight: 900;
	text-decoration: none;
	margin-bottom: 12px;
}

.ch-theme-single-header h1 {
	font-size: clamp(2rem, 4.8vw, 4rem);
	line-height: .98;
	letter-spacing: -.055em;
	margin: 0 0 14px;
	max-width: 900px;
	color: #0f172a;
}

.ch-theme-single-meta {
	font-size: .94rem;
	color: #64748b;
	font-weight: 800;
}

.ch-theme-featured-image {
	margin: 0;
	border-radius: 0;
	max-height: 540px;
	overflow: hidden;
}

.ch-theme-featured-image img {
	width: 100%;
	display: block;
	object-fit: cover;
}

.ch-theme-single .ch-theme-entry-content {
	padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px);
	max-width: 900px;
	margin: 0 auto;
	font-size: clamp(1.03rem, 1.25vw, 1.13rem);
	line-height: 1.82;
	color: #243044;
}

.ch-theme-single .ch-theme-entry-content > *:first-child { margin-top: 0; }
.ch-theme-single .ch-theme-entry-content > *:last-child { margin-bottom: 0; }

.ch-theme-single .ch-theme-entry-content h2,
.ch-theme-single .ch-theme-entry-content h3,
.ch-theme-single .ch-theme-entry-content h4 {
	color: #0f172a;
	letter-spacing: -.025em;
	line-height: 1.14;
	margin-top: 1.45em;
}

.ch-theme-single-footer {
	padding: 0 clamp(20px, 5vw, 64px) 34px;
	max-width: 900px;
	margin: 0 auto;
}

.ch-theme-post-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	font-size: .88rem;
	font-weight: 900;
	color: #64748b;
}

.ch-theme-post-tags a {
	padding: 7px 10px;
	border-radius: 999px;
	background: #f1f7ff;
	color: #005fcc;
	text-decoration: none;
}

.ch-theme-post-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 18px 0;
}

.ch-theme-post-nav a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 16px;
	border: 1px solid #dbe8f7;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(15,23,42,.06);
	font-weight: 900;
	text-decoration: none;
	color: #0f172a;
	text-align: center;
}

.ch-theme-post-nav a:hover {
	background: #f1f7ff;
	border-color: #b8dcff;
	color: #005fcc;
}

/* WooCommerce card and text polish. */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
	gap: 22px !important;
	margin: 24px 0 !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	min-width: 0;
	padding: 14px 14px 16px !important;
	border-radius: 22px !important;
	background: #fff !important;
	border: 1px solid #e1eaf5 !important;
	box-shadow: 0 18px 44px rgba(15,23,42,.07) !important;
	overflow: hidden;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	transform: translateY(-2px);
	box-shadow: 0 22px 54px rgba(15,23,42,.10) !important;
	border-color: #cfe4fb !important;
}

.woocommerce ul.products li.product a img {
	width: 100% !important;
	aspect-ratio: 1 / 1;
	height: auto !important;
	object-fit: cover;
	border-radius: 17px !important;
	background: #f8fafc;
	margin: 0 0 13px !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem !important;
	line-height: 1.25 !important;
	font-weight: 950 !important;
	letter-spacing: -.02em;
	color: #0f172a !important;
	padding: 0 !important;
	margin: 0 0 8px !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.woocommerce ul.products li.product .price {
	display: block !important;
	font-size: 1.05rem !important;
	line-height: 1.2 !important;
	font-weight: 950 !important;
	color: #005fcc !important;
	margin: 8px 0 12px !important;
}

.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	border-radius: 999px !important;
	background: #0080ff !important;
	color: #fff !important;
	border: 1px solid #0080ff !important;
	box-shadow: 0 12px 26px rgba(0,128,255,.18) !important;
	font-weight: 950 !important;
	font-size: .9rem !important;
	line-height: 1 !important;
	padding: 12px 15px !important;
	text-decoration: none !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: #006fdf !important;
	border-color: #006fdf !important;
	color: #fff !important;
}

.woocommerce span.onsale {
	min-height: auto !important;
	min-width: auto !important;
	padding: 7px 10px !important;
	border-radius: 999px !important;
	background: #0f172a !important;
	color: #fff !important;
	font-weight: 950 !important;
	line-height: 1 !important;
	font-size: .75rem !important;
}

.woocommerce div.product {
	background: #fff !important;
	border: 1px solid #e1eaf5 !important;
	border-radius: 28px !important;
	box-shadow: 0 22px 56px rgba(15,23,42,.08) !important;
	padding: clamp(18px, 3vw, 34px) !important;
}

.woocommerce div.product .product_title {
	font-size: clamp(2rem, 4vw, 3.5rem) !important;
	line-height: 1 !important;
	font-weight: 950 !important;
	color: #0f172a !important;
}

.woocommerce div.product .summary,
.woocommerce div.product .woocommerce-tabs,
.woocommerce-cart-form,
.woocommerce-checkout-review-order,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	color: #243044 !important;
	font-size: 16px !important;
	line-height: 1.65 !important;
}

.woocommerce div.product .summary p,
.woocommerce div.product .woocommerce-tabs p,
.woocommerce-cart-form td,
.woocommerce-checkout-review-order td,
.woocommerce-account .woocommerce-MyAccount-content p {
	color: #243044 !important;
}

.woocommerce table.shop_table {
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border-radius: 18px !important;
	overflow: hidden;
}

@media (max-width: 900px) {
	.ch-theme-layout--sidebar {
		grid-template-columns: 1fr !important;
	}
	.ch-theme-post-nav {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.ch-theme-blog-layout-compact .ch-theme-post-list,
	.ch-theme-blog-layout-compact .ch-theme-post-list--blog {
		grid-template-columns: 1fr;
	}
	.ch-theme-single-header,
	.ch-theme-single .ch-theme-entry-content,
	.ch-theme-single-footer {
		padding-left: 18px;
		padding-right: 18px;
	}
}

/* v0.1.9: layout/options/mobile/Woo polish */
:root {
	--ch-theme-header-bg: #ffffff;
	--ch-theme-header-text: var(--ch-theme-text);
}
body.ch-theme-mode-dark {
	--ch-theme-muted: #94a3b8;
	--ch-theme-border: rgba(148, 163, 184, .28);
	--ch-theme-surface-soft: rgba(255,255,255,.055);
	--ch-theme-shadow: 0 18px 60px rgba(0,0,0,.35);
}
body.ch-theme-mode-dark a { color: #7cc0ff; }
body.ch-theme-mode-dark .ch-theme-header,
body.ch-theme-mode-dark .ch-theme-header-top,
body.ch-theme-mode-dark .ch-theme-nav-bar,
.ch-theme-header,
.ch-theme-header-top,
.ch-theme-nav-bar {
	background: color-mix(in srgb, var(--ch-theme-header-bg) 94%, transparent);
	color: var(--ch-theme-header-text);
}
body.ch-theme-mode-dark .ch-theme-page,
body.ch-theme-mode-dark .ch-theme-single,
body.ch-theme-mode-dark .ch-theme-post-card,
body.ch-theme-mode-dark .ch-theme-widget,
body.ch-theme-mode-dark .woocommerce ul.products li.product,
body.ch-theme-mode-dark .woocommerce div.product,
body.ch-theme-mode-dark .woocommerce-cart-form,
body.ch-theme-mode-dark .woocommerce-checkout-review-order,
body.ch-theme-mode-dark .woocommerce-account .woocommerce-MyAccount-content,
body.ch-theme-mode-dark .woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--ch-theme-surface);
	color: var(--ch-theme-text);
	border-color: var(--ch-theme-border);
}
body.ch-theme-mode-dark .ch-theme-primary-menu a,
body.ch-theme-mode-dark .ch-theme-account-toggle,
body.ch-theme-mode-dark .ch-theme-site-title,
body.ch-theme-mode-dark .woocommerce h1,
body.ch-theme-mode-dark .woocommerce h2,
body.ch-theme-mode-dark .woocommerce h3,
body.ch-theme-mode-dark .woocommerce div.product .product_title,
body.ch-theme-mode-dark .woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--ch-theme-text); }
body.ch-theme-mode-dark .ch-theme-account-panel,
body.ch-theme-mode-dark .ch-theme-menu-panel,
body.ch-theme-mode-dark .ch-theme-primary-menu .sub-menu,
body.ch-theme-mode-dark .ch-theme-community-menu .sub-menu {
	background: var(--ch-theme-surface);
	border-color: var(--ch-theme-border);
	color: var(--ch-theme-text);
}

/* Sidebar positions */
.ch-theme-layout--sidebar {
	display: grid;
	gap: 24px;
	align-items: start;
}
.ch-theme-layout--sidebar-right { grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); }
.ch-theme-layout--sidebar-left { grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); }
.ch-theme-layout--sidebar-both { grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) minmax(220px, 280px); }
.ch-theme-layout--sidebar-left .ch-theme-sidebar--left,
.ch-theme-layout--sidebar-both .ch-theme-sidebar--left { order: 1; }
.ch-theme-layout--sidebar-left .ch-theme-content-wrap,
.ch-theme-layout--sidebar-left .ch-theme-page-shell { order: 2; }
.ch-theme-layout--sidebar-right .ch-theme-content-wrap,
.ch-theme-layout--sidebar-right .ch-theme-page-shell { order: 1; }
.ch-theme-layout--sidebar-right .ch-theme-sidebar--right { order: 2; }
.ch-theme-layout--sidebar-both .ch-theme-content-wrap,
.ch-theme-layout--sidebar-both .ch-theme-page-shell { order: 2; }
.ch-theme-layout--sidebar-both .ch-theme-sidebar--right { order: 3; }
.ch-theme-sidebar {
	position: sticky;
	top: 96px;
	max-width: 100%;
}
.ch-theme-sidebar .ch-theme-widget,
.ch-theme-mobile-widget-bar .ch-theme-widget {
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 18px;
	box-shadow: 0 10px 28px rgba(16,24,40,.06);
	padding: 16px;
	margin: 0 0 14px;
	overflow-wrap: anywhere;
}
.ch-theme-widget-title { font-size: .95rem; letter-spacing: -.015em; margin: 0 0 10px; }
.ch-theme-mobile-widget-bar { display: none; width: min(var(--ch-theme-max), calc(100% - 24px)); margin: 20px auto 0; }

/* Mobile header/menu cleanup */
.ch-theme-menu-toggle {
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 14px !important;
	background: var(--ch-theme-surface) !important;
	box-shadow: 0 8px 20px rgba(16,24,40,.06) !important;
	min-width: 44px;
	min-height: 44px;
}
.ch-theme-menu-panel {
	position: fixed;
	left: 12px;
	right: 12px;
	top: 76px;
	z-index: 1005;
	max-height: calc(100vh - 94px);
	overflow: auto;
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 22px;
	box-shadow: 0 24px 80px rgba(16,24,40,.22);
	padding: 14px;
}
.ch-theme-menu-panel .ch-theme-menu-list,
.ch-theme-menu-panel .ch-theme-community-nav {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 8px;
	align-items: stretch;
	justify-content: stretch;
}
.ch-theme-menu-panel .ch-theme-menu-list a,
.ch-theme-menu-panel .ch-theme-nav-pill,
.ch-theme-menu-panel .ch-theme-account-panel a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	padding: 12px 14px;
	background: var(--ch-theme-surface-soft);
	font-size: .98rem;
	font-weight: 850;
	color: var(--ch-theme-text);
	text-decoration: none;
}
.ch-theme-menu-panel .sub-menu {
	position: static !important;
	left: auto !important;
	top: auto !important;
	box-shadow: none !important;
	border: 0 !important;
	background: transparent !important;
	padding: 6px 0 0 12px !important;
	min-width: 0 !important;
}
.ch-theme-menu-panel .ch-theme-account { display: block; margin-top: 12px; }
.ch-theme-menu-panel .ch-theme-account-toggle { width: 100%; justify-content: flex-start; }
.ch-theme-menu-panel .ch-theme-account-panel { position: static; display: grid; box-shadow: none; margin-top: 8px; }

/* Compact grid: smaller cards, no overflow */
.ch-theme-blog-layout-compact .ch-theme-post-list--blog,
.ch-theme-blog-layout-compact.blog .ch-theme-post-list,
.ch-theme-blog-layout-compact.home .ch-theme-post-list {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
	gap: 16px !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-card { min-width: 0; overflow: hidden; border-radius: 18px; }
.ch-theme-blog-layout-compact .ch-theme-post-body { padding: 14px !important; min-width: 0; }
.ch-theme-blog-layout-compact .ch-theme-post-title {
	font-size: clamp(1rem, 1.4vw, 1.16rem) !important;
	line-height: 1.18 !important;
	letter-spacing: -.025em;
	margin: 0 0 7px !important;
	overflow-wrap: anywhere;
}
.ch-theme-blog-layout-compact .ch-theme-post-excerpt {
	font-size: .9rem !important;
	line-height: 1.42 !important;
	margin: 0 0 10px !important;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ch-theme-blog-layout-compact .ch-theme-read-more { padding: 8px 10px !important; font-size: .84rem !important; }
.ch-theme-blog-layout-compact .ch-theme-post-meta { font-size: .76rem !important; gap: 6px !important; flex-wrap: wrap; }
.ch-theme-blog-layout-compact .ch-theme-post-thumb,
.ch-theme-blog-layout-compact .ch-theme-post-thumb img,
.ch-theme-blog-layout-compact .ch-theme-post-placeholder { min-height: 130px !important; max-height: 170px !important; }

/* Single blog post polish */
.ch-theme-single {
	max-width: 880px;
	margin: 0 auto;
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 26px;
	box-shadow: 0 18px 60px rgba(16,24,40,.08);
	overflow: hidden;
}
.ch-theme-single-header {
	padding: clamp(24px, 5vw, 52px) clamp(18px, 5vw, 56px) 20px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--ch-theme-blue) 12%, transparent), transparent 70%);
}
.ch-theme-single-header h1 { font-size: clamp(2rem, 5vw, 4rem); line-height: .98; margin: 10px 0 12px; }
.ch-theme-featured-image { margin: 0; border-radius: 0; }
.ch-theme-featured-image img { width: 100%; display: block; max-height: 540px; object-fit: cover; }
.ch-theme-entry-content { padding: clamp(22px, 5vw, 56px); font-size: clamp(1.03rem, 1.25vw, 1.18rem); line-height: 1.78; }
.ch-theme-entry-content p { margin: 0 0 1.25em; }
.ch-theme-entry-content h2, .ch-theme-entry-content h3 { line-height: 1.1; letter-spacing: -.03em; margin-top: 1.6em; }
.ch-theme-single-footer { padding: 0 clamp(22px, 5vw, 56px) 34px; }

/* WooCommerce: remove harsh yellow and polish cards/checkout */
.woocommerce-store-notice,
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.woocommerce-notices-wrapper .wc-block-components-notice-banner {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-left: 5px solid var(--ch-theme-blue) !important;
	color: var(--ch-theme-text) !important;
	box-shadow: 0 12px 36px rgba(16,24,40,.08) !important;
	border-radius: 16px !important;
}
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before { color: var(--ch-theme-blue) !important; }
.woocommerce .woocommerce-breadcrumb mark,
.woocommerce mark,
.woocommerce .count,
.woocommerce .required,
.woocommerce .stock { background: transparent !important; color: var(--ch-theme-blue) !important; }
.woocommerce ul.products li.product {
	padding: 14px !important;
	border-radius: 22px !important;
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	box-shadow: 0 12px 35px rgba(16,24,40,.07) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
}
.woocommerce ul.products li.product a img { border-radius: 16px !important; aspect-ratio: 1 / 1; object-fit: cover; background: var(--ch-theme-surface-soft); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem !important; line-height: 1.22 !important; margin: 4px 0 !important; overflow-wrap: anywhere; }
.woocommerce ul.products li.product .price { font-size: 1.05rem !important; font-weight: 950 !important; color: var(--ch-theme-text) !important; }
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	border-radius: 999px !important;
	background: var(--ch-theme-blue) !important;
	color: #fff !important;
	font-weight: 900 !important;
	padding: 11px 16px !important;
	line-height: 1 !important;
	border: 0 !important;
	box-shadow: 0 12px 24px color-mix(in srgb, var(--ch-theme-blue) 22%, transparent) !important;
}
.woocommerce-checkout .col2-set,
.woocommerce-checkout #order_review,
.woocommerce-cart-form,
.woocommerce-checkout-review-order,
.woocommerce .cart_totals,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 24px !important;
	box-shadow: 0 16px 46px rgba(16,24,40,.08) !important;
	padding: clamp(16px, 3vw, 28px) !important;
	color: var(--ch-theme-text) !important;
}
.woocommerce-checkout h3,
.woocommerce .cart_totals h2,
.woocommerce-account h2,
.woocommerce-account h3 { font-size: clamp(1.22rem, 2vw, 1.7rem) !important; letter-spacing: -.035em; color: var(--ch-theme-text) !important; }
.woocommerce table.shop_table { border-collapse: separate !important; border-spacing: 0 8px !important; border: 0 !important; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { background: var(--ch-theme-surface-soft) !important; border: 0 !important; color: var(--ch-theme-text) !important; padding: 12px !important; }
.woocommerce form .form-row label { color: var(--ch-theme-text) !important; font-weight: 800; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 14px !important;
	color: var(--ch-theme-text) !important;
	min-height: 44px !important;
}

@media (max-width: 1024px) {
	.ch-theme-layout--sidebar,
	.ch-theme-layout--sidebar-left,
	.ch-theme-layout--sidebar-right,
	.ch-theme-layout--sidebar-both { grid-template-columns: 1fr !important; }
	.ch-theme-sidebar { display: none; position: static; }
	.ch-theme-mobile-widget-bar { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
}
@media (max-width: 780px) {
	body.ch-theme.admin-bar .ch-theme-header { top: 46px; }
	.ch-theme-header-inner { width: min(100% - 22px, var(--ch-theme-max)); min-height: 62px; gap: 10px; }
	.custom-logo-link img { max-height: 46px; }
	.ch-theme-site-title { font-size: 1.05rem; }
	.ch-theme-primary-menu--desktop,
	.ch-theme-header-widgets { display: none !important; }
	.ch-theme-header-actions > .ch-theme-account { display: none !important; }
	.ch-theme-menu-panel { top: 70px; left: 10px; right: 10px; border-radius: 18px; }
	.ch-theme-post-list--blog { grid-template-columns: 1fr !important; }
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
	.woocommerce ul.products li.product { padding: 10px !important; border-radius: 18px !important; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .92rem !important; }
	.woocommerce ul.products li.product .button { width: 100%; text-align: center; font-size: .82rem !important; padding: 10px 8px !important; }
	.ch-theme-entry-content { padding: 22px 18px; }
}
@media (max-width: 480px) {
	.woocommerce ul.products { grid-template-columns: 1fr !important; }
}

/* v0.2.0 stability and polish overrides */
html[data-ch-theme-mode="dark"] { color-scheme: dark; }
html[data-ch-theme-mode="light"] { color-scheme: light; }
body.ch-theme {
	color: var(--ch-theme-text) !important;
}
body.ch-theme:not(.ch-theme-elementor-page) {
	background: radial-gradient(circle at top left, color-mix(in srgb, var(--ch-theme-blue) 12%, transparent), transparent 32rem), var(--ch-theme-bg) !important;
}
body.ch-theme.admin-bar .ch-theme-header { top: 0 !important; }
@media (min-width: 783px) {
	body.ch-theme.admin-bar .ch-theme-header { top: 0 !important; }
}
.ch-theme-header,
.ch-theme-header-top,
.ch-theme-nav-bar {
	background: color-mix(in srgb, var(--ch-theme-header-bg) 94%, transparent) !important;
	border-color: var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
.ch-theme-header a,
.ch-theme-header button { color: var(--ch-theme-text); }
.ch-theme-mode-toggle,
.ch-theme-menu-toggle,
.ch-theme-account-toggle {
	background: var(--ch-theme-surface-soft) !important;
	border: 1px solid var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
	border-radius: 999px !important;
	box-shadow: var(--ch-theme-soft-shadow);
}
.ch-theme-mode-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 12px;
	font-weight: 850;
	cursor: pointer;
}
.ch-theme-mode-toggle:hover,
.ch-theme-menu-toggle:hover,
.ch-theme-account-toggle:hover {
	border-color: color-mix(in srgb, var(--ch-theme-blue) 45%, var(--ch-theme-border)) !important;
	transform: translateY(-1px);
}
.ch-theme-menu-toggle {
	width: 44px;
	height: 44px;
	padding: 0 !important;
	justify-content: center;
}
.ch-theme-menu-toggle-bars,
.ch-theme-menu-toggle-bars::before,
.ch-theme-menu-toggle-bars::after {
	display: block;
	width: 19px;
	height: 2px;
	background: currentColor;
	border-radius: 3px;
	content: "";
	position: relative;
}
.ch-theme-menu-toggle-bars::before { position: absolute; top: -6px; left: 0; }
.ch-theme-menu-toggle-bars::after { position: absolute; top: 6px; left: 0; }
.ch-theme-menu-open .ch-theme-menu-toggle-bars { background: transparent; }
.ch-theme-menu-open .ch-theme-menu-toggle-bars::before { top: 0; transform: rotate(45deg); }
.ch-theme-menu-open .ch-theme-menu-toggle-bars::after { top: 0; transform: rotate(-45deg); }

.ch-theme-menu-panel {
	position: fixed !important;
	top: 76px;
	left: 12px;
	right: 12px;
	max-height: calc(100dvh - 96px) !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 22px !important;
	box-shadow: var(--ch-theme-shadow) !important;
	padding: 14px !important;
	z-index: 1005 !important;
}
.admin-bar .ch-theme-menu-panel { top: 90px; max-height: calc(100dvh - 110px) !important; }
.ch-theme-menu-panel .ch-theme-menu-list,
.ch-theme-menu-panel .ch-theme-community-nav {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 8px !important;
}
.ch-theme-menu-panel a,
.ch-theme-menu-panel button,
.ch-theme-menu-panel .ch-theme-nav-pill {
	width: 100% !important;
	justify-content: flex-start !important;
	padding: 12px 14px !important;
	border-radius: 14px !important;
}
.ch-theme-menu-panel .sub-menu {
	position: static !important;
	left: auto !important;
	box-shadow: none !important;
	margin-top: 6px !important;
	background: var(--ch-theme-surface-soft) !important;
}
html.ch-theme-menu-lock { overflow: hidden; }

.ch-theme-container--community { width: min(var(--ch-theme-wide), calc(100% - 32px)); }
.ch-theme-community-shell {
	display: grid;
	gap: 20px;
	align-items: start;
	padding: 24px 0;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-left { grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); }
.ch-theme-community-shell.ch-theme-layout--sidebar-right { grid-template-columns: minmax(0, 1fr) minmax(220px, 280px); }
.ch-theme-community-shell.ch-theme-layout--sidebar-both { grid-template-columns: minmax(190px, 240px) minmax(0, 1fr) minmax(190px, 240px); }
.ch-theme-community-content-wrap { min-width: 0; }
.ch-theme-sidebar {
	background: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 20px !important;
	box-shadow: var(--ch-theme-soft-shadow) !important;
	padding: 16px !important;
}
.ch-theme-widget { color: var(--ch-theme-text); }
.ch-theme-widget a { color: var(--ch-theme-blue); overflow-wrap: anywhere; }
.ch-theme-widget-title { color: var(--ch-theme-text); font-size: 1rem; line-height: 1.2; margin: 0 0 10px; }
.ch-theme-mobile-widget-bar {
	display: none;
	width: min(var(--ch-theme-max), calc(100% - 24px));
	margin: 12px auto 24px;
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 20px;
	box-shadow: var(--ch-theme-soft-shadow);
	padding: 14px;
}

.ch-theme-blog-layout-compact .ch-theme-post-list,
.ch-theme-blog-layout-compact .ch-theme-post-list--blog {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
	gap: 16px !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-card {
	min-width: 0 !important;
	overflow: hidden !important;
	border-radius: 20px !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-card h2,
.ch-theme-blog-layout-compact .ch-theme-post-title {
	font-size: clamp(1.05rem, 1.5vw, 1.28rem) !important;
	line-height: 1.16 !important;
	letter-spacing: -.03em !important;
	overflow-wrap: anywhere !important;
	word-break: normal !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-excerpt,
.ch-theme-blog-layout-compact .ch-theme-post-card p {
	font-size: .92rem !important;
	line-height: 1.42 !important;
	max-width: 100% !important;
	overflow-wrap: anywhere !important;
}
.ch-theme-single {
	background: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 26px !important;
	box-shadow: var(--ch-theme-shadow) !important;
	padding: clamp(20px, 4vw, 46px) !important;
}
.ch-theme-single-header h1 { color: var(--ch-theme-text) !important; font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1.02; }
.ch-theme-entry-content,
.ch-theme-page-content { color: var(--ch-theme-text) !important; }
.ch-theme-entry-content p,
.ch-theme-page-content p,
.woocommerce p { color: color-mix(in srgb, var(--ch-theme-text) 88%, var(--ch-theme-muted)) !important; }
.ch-theme-entry-content a,
.ch-theme-page-content a { color: var(--ch-theme-blue) !important; }

.woocommerce,
.woocommerce-page { color: var(--ch-theme-text) !important; }
.woocommerce .products li.product,
.woocommerce-page .products li.product,
.woocommerce div.product,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 22px !important;
	box-shadow: var(--ch-theme-soft-shadow) !important;
	padding: 18px !important;
}
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error {
	background: var(--ch-theme-surface-soft) !important;
	color: var(--ch-theme-text) !important;
	border-top: 3px solid var(--ch-theme-blue) !important;
	border-radius: 16px !important;
}
.woocommerce mark,
.woocommerce .mark,
.woocommerce .amount,
.woocommerce-Price-amount {
	background: transparent !important;
	color: var(--ch-theme-text) !important;
	font-weight: 850 !important;
}
.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--ch-theme-blue) !important; font-weight: 900 !important; }
.woocommerce table.shop_table,
.woocommerce-cart-form,
.woocommerce form.checkout,
.woocommerce form.login,
.woocommerce form.register {
	background: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 22px !important;
	box-shadow: var(--ch-theme-soft-shadow) !important;
	padding: 16px !important;
	overflow: hidden;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { color: var(--ch-theme-text) !important; border-color: var(--ch-theme-border) !important; }
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select,
.ch-theme input,
.ch-theme textarea,
.ch-theme select {
	background: var(--ch-theme-surface-soft) !important;
	color: var(--ch-theme-text) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 12px !important;
}
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--ch-theme-blue) !important;
	color: #fff !important;
	border-radius: 999px !important;
	border: 0 !important;
	font-weight: 900 !important;
	padding: 12px 18px !important;
}

/* Keep CommunityHub social controls owned by the plugin, but polished. */
.ch-theme .ch-activity-actions,
.ch-theme .ch-comment-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	align-items: center !important;
}
.ch-theme .ch-activity-actions button,
.ch-theme .ch-activity-actions a,
.ch-theme .ch-comment-actions button,
.ch-theme .ch-comment-actions a,
.ch-theme .ch-bookmark-toggle,
.ch-theme .ch-repost-button,
.ch-theme .ch-comment-toggle,
.ch-theme .ch-share-button,
.ch-theme .ch-reaction-button {
	min-height: 34px !important;
	padding: 7px 11px !important;
	border-radius: 999px !important;
	background: var(--ch-theme-surface-soft) !important;
	border: 1px solid var(--ch-theme-border) !important;
	color: var(--ch-theme-muted) !important;
	font-size: .88rem !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	width: auto !important;
}
.ch-theme .ch-activity-actions button:hover,
.ch-theme .ch-activity-actions a:hover,
.ch-theme .ch-comment-actions button:hover,
.ch-theme .ch-comment-actions a:hover {
	background: color-mix(in srgb, var(--ch-theme-blue) 10%, var(--ch-theme-surface)) !important;
	border-color: color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border)) !important;
	color: var(--ch-theme-blue) !important;
	text-decoration: none !important;
}
.ch-theme .ch-reaction-picker,
.ch-theme .ch-mobile-reaction-picker,
.ch-theme .ch-repost-combo-menu,
.ch-theme .ch-post-menu-dropdown,
.ch-theme .ch-comment-menu-dropdown {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 18px !important;
	box-shadow: var(--ch-theme-shadow) !important;
	padding: 8px !important;
	z-index: 1006 !important;
}
.ch-theme .ch-reaction-picker button,
.ch-theme .ch-mobile-reaction-picker button {
	width: 38px !important;
	height: 38px !important;
	border-radius: 999px !important;
	font-size: 1.25rem !important;
	background: var(--ch-theme-surface-soft) !important;
	border: 1px solid var(--ch-theme-border) !important;
}
.ch-theme .ch-activity-author a,
.ch-theme .ch-activity-author-name,
.ch-theme .ch-repost-preview-author a,
.ch-theme .ch-repost-author a,
.ch-theme .ch-comment-author a,
.ch-theme .ch-comment-author-name,
.ch-theme .ch-activity-meta a,
.ch-theme .ch-comment-meta a,
.ch-theme .ch-activity-time a,
.ch-theme .ch-comment-time a {
	color: var(--ch-theme-text) !important;
	text-decoration: none !important;
}
.ch-theme .ch-activity-author a:hover,
.ch-theme .ch-comment-author a:hover,
.ch-theme .ch-activity-meta a:hover,
.ch-theme .ch-comment-meta a:hover {
	color: var(--ch-theme-blue) !important;
}
.ch-theme .ch-activity-content a,
.ch-theme .ch-comment-content a { color: var(--ch-theme-blue) !important; }

@media (max-width: 900px) {
	.ch-theme-primary-menu--desktop,
	.ch-theme-header-widgets { display: none !important; }
	.ch-theme-header-inner { min-height: 64px; gap: 10px; }
	.ch-theme-brand { min-width: 0; max-width: 58vw; }
	.ch-theme-account-name,
	.ch-theme-mode-toggle-text { display: none; }
	.ch-theme-mode-toggle { width: 42px; height: 42px; justify-content: center; padding: 0 !important; }
	.ch-theme-community-shell,
	.ch-theme-community-shell.ch-theme-layout--sidebar-left,
	.ch-theme-community-shell.ch-theme-layout--sidebar-right,
	.ch-theme-community-shell.ch-theme-layout--sidebar-both,
	.ch-theme-layout,
	.ch-theme-layout--sidebar,
	.ch-theme-layout--sidebar-left,
	.ch-theme-layout--sidebar-right,
	.ch-theme-layout--sidebar-both {
		display: block !important;
	}
	.ch-theme-sidebar { display: none !important; }
	.ch-theme-mobile-widget-bar { display: block; }
	.ch-theme-container,
	.ch-theme-container--community { width: min(100% - 20px, var(--ch-theme-max)); }
	.ch-theme-blog-layout-compact .ch-theme-post-list,
	.ch-theme-blog-layout-compact .ch-theme-post-list--blog { grid-template-columns: 1fr !important; }
	.ch-theme .ch-activity-actions,
	.ch-theme .ch-comment-actions { gap: 6px !important; justify-content: space-between !important; }
	.ch-theme .ch-activity-actions button,
	.ch-theme .ch-activity-actions a,
	.ch-theme .ch-comment-actions button,
	.ch-theme .ch-comment-actions a {
		font-size: .78rem !important;
		padding: 7px 8px !important;
		min-height: 32px !important;
	}
	.ch-theme .ch-mobile-reaction-picker,
	.ch-theme .ch-reaction-picker {
		max-width: calc(100vw - 24px) !important;
		overflow-x: auto !important;
	}
	.woocommerce table.shop_table,
	.woocommerce-cart-form,
	.woocommerce form.checkout { padding: 10px !important; border-radius: 16px !important; }
}


/* =========================================================
   v0.2.1: route/customizer safety, sidebar width fixes,
   mobile header/menu cleanup, dark mode hardening,
   CommunityHub card polish, blog/Woo refinements.
   ========================================================= */

/* Customizer safe placeholder */
.ch-theme-customizer-safe-preview {
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 28px;
	box-shadow: var(--ch-theme-shadow);
	padding: clamp(24px, 5vw, 54px);
	margin: 40px auto;
	max-width: 860px;
	text-align: center;
}
.ch-theme-customizer-safe-preview h1 {
	margin: 0 0 10px;
	font-size: clamp(1.8rem, 4vw, 3rem);
	letter-spacing: -.05em;
	color: var(--ch-theme-text);
}
.ch-theme-customizer-safe-preview p {
	margin: 0 auto 20px;
	max-width: 680px;
	color: var(--ch-theme-muted);
	font-weight: 750;
}

/* Admin bar gap fix: keep sticky header flush. */
body.ch-theme.admin-bar .ch-theme-header { top: 0 !important; }

/* Header/mobile account split: hamburger = site nav, avatar = profile nav. */
.ch-theme-header-actions {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}
.ch-theme-account { position: relative; }
.ch-theme-account-toggle,
.ch-theme-mode-toggle,
.ch-theme-menu-toggle {
	min-height: 42px;
}
.ch-theme-account-panel {
	z-index: 1200;
}
.ch-theme-menu-panel .ch-theme-account { display: none !important; }

@media (max-width: 782px) {
	.ch-theme-header-inner {
		min-height: 64px;
		gap: 10px;
	}
	.ch-theme-primary-menu--desktop,
	.ch-theme-header-widgets { display: none !important; }
	.ch-theme-header-actions { gap: 8px; }
	.ch-theme-account-toggle {
		width: 44px !important;
		height: 44px !important;
		padding: 2px !important;
		border-radius: 999px !important;
		justify-content: center !important;
		background: var(--ch-theme-surface) !important;
		border: 1px solid var(--ch-theme-border) !important;
		box-shadow: 0 8px 20px rgba(15,23,42,.08) !important;
	}
	.ch-theme-account-toggle .ch-theme-account-name,
	.ch-theme-account-toggle .ch-theme-account-caret { display: none !important; }
	.ch-theme-account-avatar { width: 36px !important; height: 36px !important; border-radius: 999px !important; }
	.ch-theme-mode-toggle {
		min-width: 44px !important;
		width: 44px !important;
		padding: 0 !important;
		border-radius: 999px !important;
	}
	.ch-theme-mode-toggle-text { display: none !important; }
	.ch-theme-menu-toggle {
		width: 44px !important;
		height: 44px !important;
		border-radius: 999px !important;
		padding: 0 !important;
	}
	.ch-theme-menu-panel {
		position: fixed !important;
		left: 10px !important;
		right: 10px !important;
		top: 74px !important;
		bottom: 10px !important;
		max-height: none !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		padding: 14px 14px 96px !important;
		border-radius: 22px !important;
	}
	.ch-theme-account-panel {
		position: fixed !important;
		left: 10px !important;
		right: 10px !important;
		top: 74px !important;
		width: auto !important;
		max-height: calc(100dvh - 90px) !important;
		overflow-y: auto !important;
		padding-bottom: 18px !important;
	}
}

/* Sidebars must never crush the main content. */
.ch-theme-container { max-width: 100%; }
.ch-theme-layout,
.ch-theme-community-shell {
	width: 100%;
	min-width: 0;
}
.ch-theme-layout--sidebar {
	display: grid !important;
	align-items: start !important;
	gap: clamp(16px, 2vw, 24px) !important;
}
.ch-theme-layout--sidebar-right { grid-template-columns: minmax(620px, 1fr) minmax(220px, 280px) !important; }
.ch-theme-layout--sidebar-left { grid-template-columns: minmax(220px, 280px) minmax(620px, 1fr) !important; }
.ch-theme-layout--sidebar-both { grid-template-columns: minmax(190px, 240px) minmax(620px, 1fr) minmax(190px, 240px) !important; }
.ch-theme-content-wrap,
.ch-theme-page-shell,
.ch-theme-community-content-wrap,
.ch-profile-route-wrap,
.ch-profile-page,
.ch-feed,
.ch-bookmarks-page,
.ch-notifications-page,
.ch-members-directory-page {
	min-width: 0 !important;
	max-width: 100% !important;
}
.ch-theme-layout--sidebar-left .ch-theme-community-content-wrap { order: 2; }
.ch-theme-layout--sidebar-right .ch-theme-community-content-wrap { order: 1; }
.ch-theme-layout--sidebar-both .ch-theme-community-content-wrap { order: 2; }
.ch-theme-layout--sidebar-both .ch-theme-sidebar--right { order: 3; }
.ch-theme-sidebar {
	min-width: 0 !important;
	width: 100% !important;
	overflow-wrap: anywhere;
}

@media (max-width: 1260px) {
	.ch-theme-layout--sidebar-right,
	.ch-theme-layout--sidebar-left,
	.ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.ch-theme-sidebar {
		position: static !important;
		order: 5 !important;
	}
	.ch-theme-content-wrap,
	.ch-theme-page-shell,
	.ch-theme-community-content-wrap { order: 1 !important; }
}

/* Dark mode: use the live html attribute so user switching works instantly. */
html[data-ch-theme-mode="dark"] body.ch-theme {
	color: var(--ch-theme-text) !important;
	color-scheme: dark;
}
html[data-ch-theme-mode="dark"] body.ch-theme:not(.ch-theme-elementor-page) {
	background: radial-gradient(circle at top left, rgba(0,128,255,.16), transparent 32rem), var(--ch-theme-bg) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme a { color: #8cc7ff; }
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-header-top,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-nav-bar,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-panel,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-sidebar,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-widget,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-page,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-single,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-post-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-page,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-page,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-members-directory-page,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce ul.products li.product,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce div.product,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-cart-form,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout-review-order,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .cart_totals,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-account .woocommerce-MyAccount-content,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-account .woocommerce-MyAccount-navigation {
	background-color: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme h1,
html[data-ch-theme-mode="dark"] body.ch-theme h2,
html[data-ch-theme-mode="dark"] body.ch-theme h3,
html[data-ch-theme-mode="dark"] body.ch-theme h4,
html[data-ch-theme-mode="dark"] body.ch-theme h5,
html[data-ch-theme-mode="dark"] body.ch-theme h6,
html[data-ch-theme-mode="dark"] body.ch-theme p,
html[data-ch-theme-mode="dark"] body.ch-theme li,
html[data-ch-theme-mode="dark"] body.ch-theme label,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-entry-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-single-header h1,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-post-title a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-name,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-name,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce p,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce li,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce table,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce label,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h1,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h2,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h3,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce div.product .product_title,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--ch-theme-text) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-muted,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-post-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-date,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-post-meta,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .woocommerce-breadcrumb,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-result-count,
html[data-ch-theme-mode="dark"] body.ch-theme .product_meta {
	color: var(--ch-theme-muted) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme input,
html[data-ch-theme-mode="dark"] body.ch-theme textarea,
html[data-ch-theme-mode="dark"] body.ch-theme select,
html[data-ch-theme-mode="dark"] body.ch-theme .select2-container--default .select2-selection--single {
	background: #0b1422 !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}

/* Community Hub post composer + card button polish. */
.ch-theme .ch-composer {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 22px !important;
	box-shadow: 0 14px 42px rgba(15,23,42,.07) !important;
	padding: 14px !important;
}
.ch-theme .ch-composer textarea,
.ch-theme .ch-composer input[type="text"] {
	border-radius: 16px !important;
	border: 1px solid var(--ch-theme-border) !important;
	background: var(--ch-theme-surface-soft) !important;
	color: var(--ch-theme-text) !important;
}
.ch-theme .ch-composer button,
.ch-theme .ch-composer .ch-composer-button,
.ch-theme .ch-composer .ch-attach-button {
	border-radius: 999px !important;
	font-size: .9rem !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	padding: 10px 14px !important;
	min-height: 38px !important;
}
.ch-theme .ch-composer .ch-post-submit,
.ch-theme .ch-composer button[type="submit"] {
	background: var(--ch-theme-blue) !important;
	color: #fff !important;
	border: 1px solid var(--ch-theme-blue) !important;
	box-shadow: 0 10px 22px color-mix(in srgb, var(--ch-theme-blue) 20%, transparent) !important;
}
.ch-theme .ch-activity-card .ch-action-row {
	gap: 8px !important;
	justify-content: space-between !important;
}
.ch-theme .ch-activity-card .ch-action-row button,
.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger {
	flex: 1 1 auto !important;
	min-width: 86px !important;
	max-width: none !important;
	justify-content: center !important;
	border-radius: 999px !important;
}
@media (max-width: 560px) {
	.ch-theme .ch-activity-card .ch-action-row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ch-theme .ch-activity-card .ch-action-row button,
	.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
	.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger { min-width: 0 !important; width: 100% !important; }
}

/* Emoji/reaction picker polish. */
.ch-theme .ch-reaction-picker,
.ch-theme .ch-mobile-reaction-picker,
.ch-theme .ch-reaction-options {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 999px !important;
	box-shadow: 0 18px 60px rgba(15,23,42,.22) !important;
	padding: 8px !important;
	gap: 6px !important;
	z-index: 9999 !important;
}
.ch-theme .ch-reaction-option {
	width: 40px !important;
	height: 40px !important;
	border-radius: 999px !important;
	background: var(--ch-theme-surface-soft) !important;
	border: 1px solid transparent !important;
	transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.ch-theme .ch-reaction-option:hover,
.ch-theme .ch-reaction-option:focus {
	transform: translateY(-2px) scale(1.07);
	border-color: color-mix(in srgb, var(--ch-theme-blue) 45%, transparent) !important;
}

/* Stop random blue bleed on profile/comment/post names and timestamps while keeping post-body links blue. */
.ch-theme .ch-activity-name,
.ch-theme .ch-comment-author,
.ch-theme .ch-post-time,
.ch-theme .ch-comment-date,
.ch-theme .ch-repost-author,
.ch-theme .ch-repost-time,
.ch-theme .ch-profile-name,
.ch-theme .ch-member-card-name,
.ch-theme .ch-user-badge,
.ch-theme .ch-user-badge a {
	color: var(--ch-theme-text) !important;
	text-decoration: none !important;
}
.ch-theme .ch-post-time,
.ch-theme .ch-comment-date,
.ch-theme .ch-repost-time { color: var(--ch-theme-muted) !important; }
.ch-theme .ch-activity-content a,
.ch-theme .ch-comment-content a,
.ch-theme .ch-link-preview-card { color: var(--ch-theme-blue) !important; }

/* Blog layouts: keep compact usable and single posts readable. */
.ch-theme-blog-layout-compact .ch-theme-post-list,
.ch-theme-blog-layout-compact .ch-theme-post-list--blog {
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
	gap: 14px !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-card {
	border-radius: 16px !important;
	box-shadow: 0 10px 28px rgba(15,23,42,.06) !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-title,
.ch-theme-blog-layout-compact .ch-theme-post-card h2 {
	font-size: .98rem !important;
	line-height: 1.18 !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-excerpt {
	font-size: .84rem !important;
	line-height: 1.36 !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-thumb,
.ch-theme-blog-layout-compact .ch-theme-post-thumb img,
.ch-theme-blog-layout-compact .ch-theme-post-placeholder { height: 122px !important; min-height: 122px !important; }
.ch-theme-single { width: 100%; max-width: 920px; }
.ch-theme-layout--sidebar .ch-theme-single { max-width: 100%; }

/* WooCommerce cart/checkout cleanup. */
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout .col2-set,
.woocommerce-checkout #order_review,
.woocommerce-checkout-review-order,
.woocommerce-cart-form {
	background: var(--ch-theme-surface) !important;
	border: 1px solid var(--ch-theme-border) !important;
	border-radius: 22px !important;
	box-shadow: 0 12px 38px rgba(15,23,42,.07) !important;
	padding: clamp(16px, 3vw, 26px) !important;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	background: transparent !important;
	border-bottom: 1px solid var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
.woocommerce table.shop_table tr:last-child th,
.woocommerce table.shop_table tr:last-child td { border-bottom: 0 !important; }
.woocommerce .wc-block-components-totals-wrapper,
.woocommerce .wc-block-cart-items,
.woocommerce .wc-block-components-panel,
.woocommerce .wc-block-components-sidebar {
	background: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}
.woocommerce mark,
.woocommerce .count,
.woocommerce .required,
.woocommerce span.onsale {
	background: transparent !important;
	color: var(--ch-theme-blue) !important;
}

@media (max-width: 782px) {
	.ch-theme-container,
	.ch-theme-header-inner,
	.ch-theme-footer-inner,
	.ch-theme-container--community {
		width: min(100% - 18px, 100%) !important;
	}
	.ch-theme-main { padding-top: 18px; }
	.ch-theme .ch-activity-card,
	.ch-theme .ch-composer,
	.ch-profile-page,
	.ch-members-directory-page,
	.ch-notifications-page,
	.ch-bookmarks-page {
		border-radius: 18px !important;
	}
	.ch-theme-mobile-widget-bar {
		display: block !important;
		width: min(100% - 18px, 100%) !important;
		margin: 16px auto 0 !important;
	}
}

/* =========================================================
   v0.2.2: restore polished CommunityHub widths, Customizer usability,
   mobile header/profile split, dark mode hardening, badges, WooCommerce.
   ========================================================= */

/* Customizer: allow Community pages to preview, but don't let the footer/infinite scroll collide. */
.customize-preview .ch-route-community .ch-theme-footer,
.customize-preview .ch-route-community .ch-theme-footer-widgets,
.customize-preview body.ch-route-community .ch-theme-footer,
.customize-preview body.ch-route-community .ch-theme-footer-widgets {
	display: none !important;
}

/* Header polish: desktop buttons should look intentional, compact, and aligned. */
.ch-theme-header-inner { gap: 14px; }
.ch-theme-header-actions {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 9px !important;
	white-space: nowrap;
}
.ch-theme-mode-toggle,
.ch-theme-menu-toggle,
.ch-theme-account-toggle {
	background: color-mix(in srgb, var(--ch-theme-surface) 92%, var(--ch-theme-blue) 8%) !important;
	border: 1px solid color-mix(in srgb, var(--ch-theme-border) 76%, var(--ch-theme-blue) 24%) !important;
	color: var(--ch-theme-text) !important;
	box-shadow: 0 8px 22px rgba(15,23,42,.055) !important;
	transform: none !important;
}
.ch-theme-mode-toggle:hover,
.ch-theme-menu-toggle:hover,
.ch-theme-account-toggle:hover {
	background: color-mix(in srgb, var(--ch-theme-surface) 84%, var(--ch-theme-blue) 16%) !important;
	border-color: color-mix(in srgb, var(--ch-theme-blue) 52%, var(--ch-theme-border)) !important;
	text-decoration: none !important;
}
.ch-theme-account-toggle {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 4px 10px 4px 5px !important;
	border-radius: 999px !important;
	max-width: 220px !important;
}
.ch-theme-account-name { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* The app routes need consistent social-platform widths. Sidebars should support the layout, not crush it. */
.ch-theme-container--community {
	width: min(1180px, calc(100% - 32px)) !important;
	max-width: 1180px !important;
}
.ch-theme-community-shell {
	padding: 22px 0 34px !important;
	gap: 18px !important;
	align-items: start !important;
}
.ch-theme-community-shell.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
	width: 100% !important;
	max-width: 760px !important;
	margin: 0 auto !important;
}
.ch-theme-community-shell--members.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--profile.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
	max-width: 1040px !important;
}
.ch-theme-community-shell--notifications.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--saved.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--post.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
	max-width: 820px !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-right {
	grid-template-columns: minmax(0, 760px) minmax(220px, 285px) !important;
	justify-content: center !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-left {
	grid-template-columns: minmax(220px, 285px) minmax(0, 760px) !important;
	justify-content: center !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-both {
	grid-template-columns: minmax(180px, 235px) minmax(0, 720px) minmax(180px, 235px) !important;
	justify-content: center !important;
}
.ch-theme-community-content-wrap > .ch-feed,
.ch-theme-community-content-wrap > .ch-composer,
.ch-theme-community-content-wrap .ch-feed,
.ch-theme-community-content-wrap .ch-composer,
.ch-theme-community-content-wrap .ch-activity-card,
.ch-theme-community-content-wrap .ch-bookmarks-page,
.ch-theme-community-content-wrap .ch-notifications-page,
.ch-theme-community-content-wrap .ch-members-directory-page,
.ch-theme-community-content-wrap .ch-profile-page,
.ch-theme-community-content-wrap .ch-profile-route-wrap {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}
.ch-profile-header,
.ch-profile-page,
.ch-profile-route-wrap {
	max-width: 1040px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.ch-profile-header {
	border-radius: 24px !important;
	overflow: hidden !important;
}

/* Blog standard pages: keep sidebar reasonable and make post pages cleaner. */
.ch-theme-main--blog .ch-theme-container,
.ch-theme-main--single .ch-theme-container,
.ch-theme-main--archive .ch-theme-container,
.ch-theme-main--search .ch-theme-container {
	max-width: 1180px !important;
}
.ch-theme-main--blog .ch-theme-layout--sidebar-right,
.ch-theme-main--single .ch-theme-layout--sidebar-right,
.ch-theme-main--archive .ch-theme-layout--sidebar-right,
.ch-theme-main--search .ch-theme-layout--sidebar-right {
	grid-template-columns: minmax(0, 1fr) minmax(230px, 300px) !important;
}
.ch-theme-main--blog .ch-theme-layout--sidebar-left,
.ch-theme-main--single .ch-theme-layout--sidebar-left,
.ch-theme-main--archive .ch-theme-layout--sidebar-left,
.ch-theme-main--search .ch-theme-layout--sidebar-left {
	grid-template-columns: minmax(230px, 300px) minmax(0, 1fr) !important;
}
.ch-theme-single {
	max-width: 880px !important;
	padding: 0 !important;
}
.ch-theme-layout--sidebar .ch-theme-single { max-width: 100% !important; }
.ch-theme-single-header {
	background: linear-gradient(135deg, color-mix(in srgb, var(--ch-theme-blue) 10%, var(--ch-theme-surface)), var(--ch-theme-surface)) !important;
	border-bottom: 1px solid var(--ch-theme-border) !important;
}
.ch-theme-single-header h1,
.ch-theme-single .ch-theme-entry-content h2,
.ch-theme-single .ch-theme-entry-content h3,
.ch-theme-single .ch-theme-entry-content h4 { color: var(--ch-theme-text) !important; }
.ch-theme-single .ch-theme-entry-content { color: color-mix(in srgb, var(--ch-theme-text) 90%, var(--ch-theme-muted)) !important; }

/* Badges: support admin-picked badge background and text color. */
.ch-user-badge {
	background: var(--ch-badge-color, var(--ch-theme-blue)) !important;
	border-color: color-mix(in srgb, var(--ch-badge-color, var(--ch-theme-blue)) 80%, #000 20%) !important;
	color: var(--ch-badge-text-color, #ffffff) !important;
}
.ch-user-badge *,
.ch-user-badge-label,
.ch-user-badge-emoji,
a.ch-user-badge,
.ch-user-badge a {
	color: var(--ch-badge-text-color, #ffffff) !important;
}

/* CommunityHub names and timestamps should not randomly become theme-link blue. */
.ch-theme .ch-activity-header a:not(.ch-activity-content a),
.ch-theme .ch-activity-author a,
.ch-theme .ch-activity-name,
.ch-theme a.ch-activity-name,
.ch-theme .ch-comment-header a,
.ch-theme .ch-comment-author,
.ch-theme a.ch-comment-author,
.ch-theme .ch-post-time,
.ch-theme a.ch-post-time,
.ch-theme .ch-comment-date,
.ch-theme a.ch-comment-date,
.ch-theme .ch-repost-embed-header a,
.ch-theme .ch-repost-embed-name,
.ch-theme .ch-repost-embed-time,
.ch-theme .ch-member-card-name,
.ch-theme .ch-profile-name {
	color: var(--ch-theme-text) !important;
	text-decoration: none !important;
}
.ch-theme .ch-post-time,
.ch-theme a.ch-post-time,
.ch-theme .ch-comment-date,
.ch-theme a.ch-comment-date,
.ch-theme .ch-repost-embed-time { color: var(--ch-theme-muted) !important; }
.ch-theme .ch-activity-content a,
.ch-theme .ch-comment-content a { color: var(--ch-theme-blue) !important; }

/* Mobile: header order = light/dark, hamburger, avatar. Hamburger is site nav; avatar is profile nav. */
@media (max-width: 782px) {
	.ch-theme-header-inner {
		width: calc(100% - 18px) !important;
		min-height: 60px !important;
		padding: 8px 0 !important;
	}
	.ch-theme-brand { min-width: 0 !important; max-width: calc(100% - 156px) !important; }
	.custom-logo-link img { max-height: 42px !important; }
	.ch-theme-header-actions { gap: 7px !important; }
	.ch-theme-mode-toggle,
	.ch-theme-menu-toggle,
	.ch-theme-account-toggle {
		width: 42px !important;
		height: 42px !important;
		min-width: 42px !important;
		min-height: 42px !important;
		padding: 0 !important;
		border-radius: 999px !important;
	}
	.ch-theme-account-toggle { padding: 2px !important; }
	.ch-theme-account-avatar { width: 34px !important; height: 34px !important; }
	.ch-theme-menu-panel {
		top: 68px !important;
		bottom: 8px !important;
		left: 8px !important;
		right: 8px !important;
		max-height: none !important;
		overflow-y: auto !important;
		padding: 12px 12px 130px !important;
	}
	.admin-bar .ch-theme-menu-panel { top: 78px !important; bottom: 8px !important; }
	.ch-theme-account-panel {
		top: 68px !important;
		left: 8px !important;
		right: 8px !important;
		bottom: auto !important;
		max-height: calc(100dvh - 84px) !important;
		overflow-y: auto !important;
	}
	.admin-bar .ch-theme-account-panel { top: 78px !important; }
	.ch-theme-menu-panel .ch-theme-account { display: none !important; }

	/* Mobile post card action buttons: compact horizontal app controls, not spaced-out blocks. */
	.ch-theme .ch-activity-card .ch-action-row,
	.ch-theme .ch-feed .ch-action-row {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		justify-content: flex-start !important;
		gap: 6px !important;
		padding: 9px 0 !important;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.ch-theme .ch-activity-card .ch-action-row::-webkit-scrollbar,
	.ch-theme .ch-feed .ch-action-row::-webkit-scrollbar { display: none; }
	.ch-theme .ch-activity-card .ch-action-row button,
	.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
	.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
	.ch-theme .ch-feed .ch-action-row button,
	.ch-theme .ch-feed .ch-action-row .ch-action-button,
	.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
	.ch-theme .ch-repost-combo-button,
	.ch-theme .ch-bookmark-button {
		flex: 0 0 auto !important;
		width: auto !important;
		min-width: auto !important;
		padding: 7px 10px !important;
		font-size: 12.5px !important;
		border-radius: 999px !important;
	}
	.ch-theme .ch-reaction-picker,
	.ch-theme .ch-mobile-reaction-picker,
	.ch-theme .ch-reaction-options {
		border-radius: 22px !important;
		max-width: calc(100vw - 18px) !important;
		left: 9px !important;
		right: 9px !important;
		overflow-x: auto !important;
		justify-content: flex-start !important;
	}
	.ch-theme-container--community,
	.ch-theme-container,
	.ch-theme-header-inner,
	.ch-theme-footer-inner { width: calc(100% - 18px) !important; }
	.ch-theme-community-shell.ch-theme-layout--sidebar-left,
	.ch-theme-community-shell.ch-theme-layout--sidebar-right,
	.ch-theme-community-shell.ch-theme-layout--sidebar-both,
	.ch-theme-layout--sidebar-left,
	.ch-theme-layout--sidebar-right,
	.ch-theme-layout--sidebar-both { grid-template-columns: 1fr !important; }
}

/* Stronger dark mode across WooCommerce and WordPress blocks. */
html[data-ch-theme-mode="dark"] body.ch-theme,
html[data-ch-theme-mode="dark"] body.ch-theme .entry-content,
html[data-ch-theme-mode="dark"] body.ch-theme .wp-block-group,
html[data-ch-theme-mode="dark"] body.ch-theme .wp-block-column,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-page {
	color: var(--ch-theme-text) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce p,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce li,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce td,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce th,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce label,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce address,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce strong,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .product-name,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .cart-subtotal,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .order-total,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .woocommerce-checkout-payment,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout-review-order-table,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-privacy-policy-text,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-* {
	color: var(--ch-theme-text) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout-payment,
html[data-ch-theme-mode="dark"] body.ch-theme #payment,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce #payment div.payment_box,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce table.shop_table,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce table.shop_table td,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce table.shop_table th,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-cart,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-checkout,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-sidebar,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-main,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-panel,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-order-summary,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-totals-wrapper {
	background: var(--ch-theme-surface) !important;
	border-color: var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce input,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce textarea,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce select,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .select2-selection {
	background: #0b1422 !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}


/* =========================================================
   v0.2.3: preserve desktop header, fix dark CommunityHub surfaces,
   Customizer loop handling, mobile nav split, blog/Woo dark polish.
   ========================================================= */

/* CommunityHub route preview inside Customizer is too AJAX-heavy. Keep controls usable by moving preview only. */
.customize-preview body.ch-route-community .ch-theme-footer,
.customize-preview body.ch-route-community .ch-theme-footer-widgets {
	display: none !important;
}

/* Keep the desktop header from v0.2.2 unchanged while cleaning mobile only. */
@media (min-width: 783px) {
	.ch-theme-header-actions { gap: 9px !important; }
	.ch-theme-mode-toggle,
	.ch-theme-menu-toggle,
	.ch-theme-account-toggle { transform: none !important; }
}

/* Mobile header: Light/Dark, hamburger, avatar dropdown. Avatar must be visible. */
@media (max-width: 782px) {
	.ch-theme-header-actions > .ch-theme-account,
	.ch-theme-header-actions .ch-theme-account--dropdown {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}
	.ch-theme-header-actions { margin-left: auto !important; gap: 7px !important; }
	.ch-theme-mode-toggle { order: 1; }
	.ch-theme-menu-toggle { order: 2; }
	.ch-theme-account { order: 3; }
	.ch-theme-menu-panel {
		top: 66px !important;
		bottom: 6px !important;
		left: 8px !important;
		right: 8px !important;
		height: auto !important;
		max-height: none !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		padding: 12px 12px 160px !important;
	}
	.admin-bar .ch-theme-menu-panel { top: 76px !important; bottom: 6px !important; }
	.ch-theme-account-panel {
		position: fixed !important;
		top: 66px !important;
		left: 8px !important;
		right: 8px !important;
		max-height: calc(100dvh - 82px) !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		z-index: 1300 !important;
	}
	.admin-bar .ch-theme-account-panel { top: 76px !important; }
	.ch-theme-menu-panel .ch-theme-account { display: none !important; }
}

/* CommunityHub widths: restore uniform centered social-app stack. */
.ch-theme-container--community {
	width: min(1180px, calc(100% - 32px)) !important;
	max-width: 1180px !important;
}
.ch-theme-community-shell {
	align-items: start !important;
	justify-content: center !important;
	gap: 18px !important;
}
.ch-theme-community-shell.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--community.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
	max-width: 760px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.ch-theme-community-shell--post.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--saved.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--notifications.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap { max-width: 840px !important; }
.ch-theme-community-shell--members.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--profile.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap { max-width: 1040px !important; }
.ch-theme-community-shell.ch-theme-layout--sidebar-right { grid-template-columns: minmax(0, 760px) minmax(220px, 285px) !important; }
.ch-theme-community-shell.ch-theme-layout--sidebar-left { grid-template-columns: minmax(220px, 285px) minmax(0, 760px) !important; }
.ch-theme-community-shell.ch-theme-layout--sidebar-both { grid-template-columns: minmax(180px, 235px) minmax(0, 720px) minmax(180px, 235px) !important; }
.ch-profile-page,
.ch-profile-route-wrap,
.ch-profile-header {
	max-width: 1040px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Desktop CommunityHub post action buttons: polished, closer together. Do not change mobile behavior. */
@media (min-width: 783px) {
	.ch-theme .ch-activity-card .ch-action-row,
	.ch-theme .ch-feed .ch-action-row {
		display: flex !important;
		justify-content: flex-start !important;
		align-items: center !important;
		gap: 6px !important;
		padding: 10px 0 !important;
	}
	.ch-theme .ch-activity-card .ch-action-row button,
	.ch-theme .ch-activity-card .ch-action-row .ch-action-button,
	.ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
	.ch-theme .ch-feed .ch-action-row button,
	.ch-theme .ch-feed .ch-action-row .ch-action-button,
	.ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
	.ch-theme .ch-repost-combo-button,
	.ch-theme .ch-bookmark-button {
		flex: 0 0 auto !important;
		min-width: 0 !important;
		width: auto !important;
		padding: 7px 10px !important;
		font-size: 13px !important;
		border-radius: 999px !important;
	}
}

/* Dark mode: CommunityHub plugin surfaces that were still light. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-community-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-feed-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-members-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-nav,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-settings-nav,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-section-nav,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-preview,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-quote-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-original-post,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-body,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comments,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comments-wrap,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-form,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-reply-form {
	background: var(--ch-theme-surface) !important;
	background-color: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-page-header *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-community-header *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-feed-header *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-nav *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-settings-nav *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-card *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-preview *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-quote-card *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-original-post *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comments-wrap * {
	color: inherit;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-nav a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-settings-nav a {
	background: var(--ch-theme-surface-soft) !important;
	border-color: var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav a:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-nav a:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs a:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-settings-nav a:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-nav a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-settings-nav a.is-active {
	background: color-mix(in srgb, var(--ch-theme-blue) 18%, var(--ch-theme-surface)) !important;
	border-color: color-mix(in srgb, var(--ch-theme-blue) 45%, var(--ch-theme-border)) !important;
	color: #ffffff !important;
}

/* Blue text bleed: usernames/timestamps stay readable; content links stay blue. */
.ch-theme .ch-activity-header a,
.ch-theme .ch-activity-author a,
.ch-theme .ch-activity-name,
.ch-theme a.ch-activity-name,
.ch-theme .ch-comment-header a,
.ch-theme .ch-comment-author,
.ch-theme a.ch-comment-author,
.ch-theme .ch-post-time,
.ch-theme a.ch-post-time,
.ch-theme .ch-comment-date,
.ch-theme a.ch-comment-date,
.ch-theme .ch-repost-embed-header a,
.ch-theme .ch-repost-embed-name,
.ch-theme .ch-repost-embed-time,
.ch-theme .ch-member-card-name,
.ch-theme .ch-profile-name {
	color: var(--ch-theme-text) !important;
	text-decoration: none !important;
}
.ch-theme .ch-post-time,
.ch-theme a.ch-post-time,
.ch-theme .ch-comment-date,
.ch-theme a.ch-comment-date,
.ch-theme .ch-repost-embed-time { color: var(--ch-theme-muted) !important; }
.ch-theme .ch-activity-content a,
.ch-theme .ch-comment-content a,
.ch-theme .ch-link-preview-card { color: var(--ch-theme-blue) !important; }

/* Blog single pages: centered and dark-mode readable. */
.ch-theme-main--single .ch-theme-layout--no-sidebar,
.ch-theme-main--single .ch-theme-content-wrap,
.ch-theme-main--single .ch-theme-page-shell {
	max-width: 960px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-single-header {
	background: linear-gradient(135deg, rgba(0,128,255,.16), var(--ch-theme-surface)) !important;
	color: var(--ch-theme-text) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-single-meta,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-post-meta,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-post-excerpt { color: var(--ch-theme-muted) !important; }

/* WooCommerce dark mode: expensive-looking dark cards with readable text. */
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-page,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce div.product,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce ul.products li.product,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-cart-form,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout .col2-set,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout #order_review,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout-review-order,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .cart_totals,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-account .woocommerce-MyAccount-content,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-account .woocommerce-MyAccount-navigation,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-cart,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-checkout,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-sidebar,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-main,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-panel,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-order-summary,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-totals-wrapper {
	background: #101827 !important;
	color: #f4f7fb !important;
	border-color: rgba(148,163,184,.28) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce *,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-main *,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-sidebar * {
	color: inherit;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce a,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-main a { color: #8cc7ff !important; }
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .price,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-Price-amount,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .amount { color: #ffffff !important; }
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce input,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce textarea,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce select,
html[data-ch-theme-mode="dark"] body.ch-theme .select2-container--default .select2-selection--single {
	background: #07111f !important;
	color: #f4f7fb !important;
	border-color: rgba(148,163,184,.32) !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce button.button,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce a.button,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce input.button,
html[data-ch-theme-mode="dark"] body.ch-theme .wc-block-components-button {
	background: var(--ch-theme-blue) !important;
	color: #ffffff !important;
}

/* Mobile widgets visibility helper. They appear only when widgets are added to Appearance → Widgets → Mobile Widget Bar. */
@media (max-width: 1024px) {
	.ch-theme-mobile-widget-bar { display: block !important; }
}


/* =========================================================
   v0.2.4: stabilization pass.
   Keep desktop header intact, keep plugin standalone, repair mobile header/menu,
   restore professional CommunityHub widths, and reduce dark-mode bleed.
   ========================================================= */

/* Community route width discipline: centered social stack, widgets never crush content. */
.ch-theme-container--community {
  width: min(100% - 32px, 1180px) !important;
  margin-inline: auto !important;
}
.ch-theme-community-shell {
  align-items: start !important;
}
.ch-theme-community-content-wrap {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 760px !important;
  margin-inline: auto !important;
}
.ch-theme-layout--sidebar-left,
.ch-theme-layout--sidebar-right,
.ch-theme-layout--sidebar-both {
  gap: 22px !important;
}
.ch-theme-layout--sidebar-left {
  grid-template-columns: minmax(220px, 280px) minmax(0, 760px) !important;
  justify-content: center !important;
}
.ch-theme-layout--sidebar-right {
  grid-template-columns: minmax(0, 760px) minmax(220px, 280px) !important;
  justify-content: center !important;
}
.ch-theme-layout--sidebar-both {
  grid-template-columns: minmax(190px, 250px) minmax(0, 720px) minmax(190px, 250px) !important;
  justify-content: center !important;
}
.ch-theme-community-content-wrap .ch-community-feed-page,
.ch-theme-community-content-wrap .ch-community-single-post-page,
.ch-theme-community-content-wrap .ch-member-directory-page,
.ch-theme-community-content-wrap .ch-notifications-page,
.ch-theme-community-content-wrap .ch-bookmarks-page,
.ch-theme-community-content-wrap .ch-profile-page {
  width: 100% !important;
  max-width: 760px !important;
  margin-inline: auto !important;
}
.ch-profile-header,
.ch-profile-page .ch-profile-header,
.ch-profile-shell,
.ch-profile-page {
  max-width: 760px !important;
  margin-inline: auto !important;
}

/* Desktop CommunityHub post action buttons: polished, closer together. Mobile rules are intentionally untouched below 760px. */
@media (min-width: 761px) {
  .ch-theme .ch-feed .ch-action-row,
  .ch-theme .ch-activity-card .ch-action-row {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
  }
  .ch-theme .ch-feed .ch-action-row button,
  .ch-theme .ch-feed .ch-action-row .ch-action-button,
  .ch-theme .ch-feed .ch-action-row .ch-reaction-trigger,
  .ch-theme .ch-activity-card .ch-action-row button,
  .ch-theme .ch-activity-card .ch-action-row .ch-action-button,
  .ch-theme .ch-activity-card .ch-action-row .ch-reaction-trigger,
  .ch-theme .ch-repost-combo-button,
  .ch-theme .ch-bookmark-button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 7px 10px !important;
    border-radius: 999px !important;
    gap: 5px !important;
    font-size: 13px !important;
    line-height: 1 !important;
  }
}

/* Mobile header reset: Light/Dark, hamburger, avatar dropdown. Desktop header is not changed. */
@media (max-width: 960px) {
  .ch-theme-header-inner {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .ch-theme-brand {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .ch-theme-header-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    flex: 0 0 auto !important;
  }
  .ch-theme-header-actions > .ch-theme-account {
    display: flex !important;
    position: relative !important;
  }
  .ch-theme-account-toggle {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    padding: 3px !important;
    border-radius: 999px !important;
  }
  .ch-theme-account-toggle .ch-theme-account-avatar {
    width: 34px !important;
    height: 34px !important;
  }
  .ch-theme-account-name,
  .ch-theme-account-caret {
    display: none !important;
  }
  .ch-theme-mode-toggle {
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 11px !important;
    border-radius: 999px !important;
  }
  .ch-theme-mode-toggle-text { display: none !important; }
  .ch-theme-menu-toggle {
    display: inline-flex !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border-radius: 14px !important;
  }
  .ch-theme-menu-panel {
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    top: 74px !important;
    bottom: 12px !important;
    max-height: none !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 12px 12px 22px !important;
    z-index: 1002 !important;
  }
  body.admin-bar .ch-theme-menu-panel { top: 116px !important; }
  .ch-theme-account-panel {
    position: fixed !important;
    top: 74px !important;
    right: 10px !important;
    left: auto !important;
    width: min(310px, calc(100vw - 20px)) !important;
    max-height: calc(100svh - 90px) !important;
    overflow-y: auto !important;
    z-index: 1006 !important;
  }
  body.admin-bar .ch-theme-account-panel { top: 116px !important; max-height: calc(100svh - 132px) !important; }
  .ch-theme-menu-panel .ch-theme-account { display: none !important; }
}
@media (max-width: 520px) {
  .custom-logo-link img { max-height: 40px !important; }
  .ch-theme-header-inner { width: min(100% - 16px, var(--ch-theme-max)) !important; gap: 7px !important; }
  .ch-theme-mode-toggle,
  .ch-theme-menu-toggle,
  .ch-theme-account-toggle { width: 40px !important; height: 40px !important; min-width: 40px !important; }
  .ch-theme-account-toggle .ch-theme-account-avatar { width: 31px !important; height: 31px !important; }
}

/* Mobile widgets: visible under content when widgets exist. */
@media (max-width: 1024px) {
  .ch-theme-mobile-widget-bar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: min(100% - 24px, 760px) !important;
    margin: 18px auto 0 !important;
  }
}

/* Blog and single post polish/centering. */
.ch-theme-main--single .ch-theme-container {
  width: min(100% - 32px, 1060px) !important;
  margin-inline: auto !important;
}
.ch-theme-main--single .ch-theme-content-wrap {
  max-width: 820px !important;
  margin-inline: auto !important;
  min-width: 0 !important;
}
.ch-theme-single {
  background: var(--ch-theme-surface) !important;
  color: var(--ch-theme-text) !important;
  border: 1px solid var(--ch-theme-border) !important;
  box-shadow: var(--ch-theme-shadow) !important;
}
.ch-theme-single-header,
.ch-theme-entry-content,
.ch-theme-single-footer,
.ch-theme-post-nav,
.comments-area {
  color: var(--ch-theme-text) !important;
}
.ch-theme-entry-content p,
.ch-theme-entry-content li,
.ch-theme-entry-content td,
.ch-theme-entry-content th {
  color: var(--ch-theme-text) !important;
}
.ch-theme-entry-content a { color: var(--ch-theme-blue) !important; }

/* Dark mode: broad containment. Dark mode will get its own deeper pass later. */
html[data-ch-theme-mode="dark"] body.ch-theme {
  background: #07111f !important;
  color: #f5f7fb !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-main,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-content-wrap,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-page-shell,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-single,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-post-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-widget,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-panel,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-content-wrap,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-community-feed-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-member-directory-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-section,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comments-wrap,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-original-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-original,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-link-preview-card {
  background: #121c2b !important;
  border-color: #26364d !important;
  color: #f5f7fb !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-feed-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notification-item,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-member-card {
  background-color: #121c2b !important;
  color: #f5f7fb !important;
  border-color: #26364d !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-card *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-original-card *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-page *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-page *,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page * {
  border-color: #26364d;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-name,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-name a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-meta,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-meta a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-meta,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-meta a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-original-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-original-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-subnav a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-tabs a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hub-page-nav a {
  color: #f5f7fb !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-muted,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-muted {
  color: #b7c4d6 !important;
}

/* WooCommerce dark-mode readability. */
html[data-ch-theme-mode="dark"] body.ch-theme.woocommerce,
html[data-ch-theme-mode="dark"] body.ch-theme.woocommerce-page,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-page {
  color: #f5f7fb !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce div.product,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce ul.products li.product,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-cart-form,
html[data-ch-theme-mode="dark"] body.ch-theme .cart_totals,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-checkout-review-order,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-billing-fields,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-shipping-fields,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-additional-fields,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-account .woocommerce-MyAccount-content,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-account .woocommerce-MyAccount-navigation,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce table.shop_table,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce form.checkout_coupon,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce form.login,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce form.register {
  background: #121c2b !important;
  color: #f5f7fb !important;
  border-color: #26364d !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h1,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h2,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h3,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce h4,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce p,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce li,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce label,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce th,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce td,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce strong,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce div.product .product_title,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce ul.products li.product .woocommerce-loop-product__title,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .price,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .product_meta {
  color: #f5f7fb !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce small,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .woocommerce-breadcrumb,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce-result-count,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .variation,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce .product_meta a {
  color: #b7c4d6 !important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce input,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce textarea,
html[data-ch-theme-mode="dark"] body.ch-theme .woocommerce select {
  background: #0b1422 !important;
  color: #f5f7fb !important;
  border-color: #34445c !important;
}


/* =========================================================
   v0.2.5 CommunityHub Dark Mode Bridge
   Moved from confirmed-working Additional CSS.
   Theme-only override. Does not change plugin logic.
   ========================================================= */

html[data-ch-theme-mode="dark"] body .ch-comment-bubble,
body.ch-theme-mode-dark .ch-comment-bubble,
body.ch-theme-dark .ch-comment-bubble {
	background: #142238 !important;
	color: #f8fafc !important;
	border: 1px solid rgba(148, 163, 184, 0.24) !important;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18) !important;
}

html[data-ch-theme-mode="dark"] body .ch-comment-text,
html[data-ch-theme-mode="dark"] body .ch-comment-text p,
html[data-ch-theme-mode="dark"] body .ch-comment-name,
html[data-ch-theme-mode="dark"] body .ch-comment-name-link,
html[data-ch-theme-mode="dark"] body .ch-comment-head,
html[data-ch-theme-mode="dark"] body .ch-comment-identity,
body.ch-theme-mode-dark .ch-comment-text,
body.ch-theme-mode-dark .ch-comment-text p,
body.ch-theme-mode-dark .ch-comment-name,
body.ch-theme-mode-dark .ch-comment-name-link,
body.ch-theme-dark .ch-comment-text,
body.ch-theme-dark .ch-comment-text p,
body.ch-theme-dark .ch-comment-name,
body.ch-theme-dark .ch-comment-name-link {
	color: #f8fafc !important;
}

html[data-ch-theme-mode="dark"] body .ch-comment-time,
html[data-ch-theme-mode="dark"] body .ch-comment-dot,
html[data-ch-theme-mode="dark"] body .ch-comment-date,
body.ch-theme-mode-dark .ch-comment-time,
body.ch-theme-mode-dark .ch-comment-dot,
body.ch-theme-mode-dark .ch-comment-date,
body.ch-theme-dark .ch-comment-time,
body.ch-theme-dark .ch-comment-dot,
body.ch-theme-dark .ch-comment-date {
	color: #a8b5c7 !important;
}

html[data-ch-theme-mode="dark"] body .ch-comments-box,
html[data-ch-theme-mode="dark"] body .ch-comments-list,
html[data-ch-theme-mode="dark"] body .ch-comment-thread,
html[data-ch-theme-mode="dark"] body .ch-comment,
html[data-ch-theme-mode="dark"] body .ch-comment-main,
body.ch-theme-mode-dark .ch-comments-box,
body.ch-theme-mode-dark .ch-comments-list,
body.ch-theme-mode-dark .ch-comment-thread,
body.ch-theme-mode-dark .ch-comment,
body.ch-theme-mode-dark .ch-comment-main,
body.ch-theme-dark .ch-comments-box,
body.ch-theme-dark .ch-comments-list,
body.ch-theme-dark .ch-comment-thread,
body.ch-theme-dark .ch-comment,
body.ch-theme-dark .ch-comment-main {
	background: transparent !important;
	color: #f8fafc !important;
	border-color: rgba(148, 163, 184, 0.24) !important;
}

html[data-ch-theme-mode="dark"] body .ch-comment-actions button,
html[data-ch-theme-mode="dark"] body .ch-comment-actions a,
html[data-ch-theme-mode="dark"] body .ch-comment-like,
html[data-ch-theme-mode="dark"] body .ch-reply-toggle,
html[data-ch-theme-mode="dark"] body .ch-toggle-replies,
body.ch-theme-mode-dark .ch-comment-actions button,
body.ch-theme-mode-dark .ch-comment-actions a,
body.ch-theme-mode-dark .ch-comment-like,
body.ch-theme-mode-dark .ch-reply-toggle,
body.ch-theme-mode-dark .ch-toggle-replies,
body.ch-theme-dark .ch-comment-actions button,
body.ch-theme-dark .ch-comment-actions a,
body.ch-theme-dark .ch-comment-like,
body.ch-theme-dark .ch-reply-toggle,
body.ch-theme-dark .ch-toggle-replies {
	background: transparent !important;
	color: #a8b5c7 !important;
	border: 0 !important;
	box-shadow: none !important;
}

html[data-ch-theme-mode="dark"] body .ch-comment-actions button:hover,
html[data-ch-theme-mode="dark"] body .ch-comment-actions a:hover,
html[data-ch-theme-mode="dark"] body .ch-comment-like:hover,
html[data-ch-theme-mode="dark"] body .ch-reply-toggle:hover,
html[data-ch-theme-mode="dark"] body .ch-toggle-replies:hover,
body.ch-theme-mode-dark .ch-comment-actions button:hover,
body.ch-theme-mode-dark .ch-comment-actions a:hover,
body.ch-theme-mode-dark .ch-comment-like:hover,
body.ch-theme-mode-dark .ch-reply-toggle:hover,
body.ch-theme-mode-dark .ch-toggle-replies:hover,
body.ch-theme-dark .ch-comment-actions button:hover,
body.ch-theme-dark .ch-comment-actions a:hover,
body.ch-theme-dark .ch-comment-like:hover,
body.ch-theme-dark .ch-reply-toggle:hover,
body.ch-theme-dark .ch-toggle-replies:hover {
	background: rgba(255, 255, 255, 0.07) !important;
	color: #ffffff !important;
}

html[data-ch-theme-mode="dark"] body .ch-comment-textarea,
html[data-ch-theme-mode="dark"] body .ch-reply-textarea,
html[data-ch-theme-mode="dark"] body .ch-edit-textarea,
body.ch-theme-mode-dark .ch-comment-textarea,
body.ch-theme-mode-dark .ch-reply-textarea,
body.ch-theme-mode-dark .ch-edit-textarea,
body.ch-theme-dark .ch-comment-textarea,
body.ch-theme-dark .ch-reply-textarea,
body.ch-theme-dark .ch-edit-textarea {
	background: #081322 !important;
	color: #f8fafc !important;
	border: 1px solid rgba(148, 163, 184, 0.28) !important;
	box-shadow: none !important;
}

html[data-ch-theme-mode="dark"] body .ch-comment-textarea::placeholder,
html[data-ch-theme-mode="dark"] body .ch-reply-textarea::placeholder,
html[data-ch-theme-mode="dark"] body .ch-edit-textarea::placeholder,
body.ch-theme-mode-dark .ch-comment-textarea::placeholder,
body.ch-theme-mode-dark .ch-reply-textarea::placeholder,
body.ch-theme-mode-dark .ch-edit-textarea::placeholder,
body.ch-theme-dark .ch-comment-textarea::placeholder,
body.ch-theme-dark .ch-reply-textarea::placeholder,
body.ch-theme-dark .ch-edit-textarea::placeholder {
	color: rgba(248, 250, 252, 0.46) !important;
}

/* Profile stack white bars */
html[data-ch-theme-mode="dark"] body .ch-profile-hub-nav,
html[data-ch-theme-mode="dark"] body .ch-hub-page-nav,
html[data-ch-theme-mode="dark"] body .ch-community-page-nav,
html[data-ch-theme-mode="dark"] body .ch-profile-tabs,
html[data-ch-theme-mode="dark"] body .ch-profile-subnav,
html[data-ch-theme-mode="dark"] body .ch-profile-nav,
body.ch-theme-mode-dark .ch-profile-hub-nav,
body.ch-theme-mode-dark .ch-hub-page-nav,
body.ch-theme-mode-dark .ch-community-page-nav,
body.ch-theme-mode-dark .ch-profile-tabs,
body.ch-theme-mode-dark .ch-profile-subnav,
body.ch-theme-mode-dark .ch-profile-nav,
body.ch-theme-dark .ch-profile-hub-nav,
body.ch-theme-dark .ch-hub-page-nav,
body.ch-theme-dark .ch-community-page-nav,
body.ch-theme-dark .ch-profile-tabs,
body.ch-theme-dark .ch-profile-subnav,
body.ch-theme-dark .ch-profile-nav {
	background: #0f1b2d !important;
	color: #f8fafc !important;
	border: 1px solid rgba(148, 163, 184, 0.24) !important;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24) !important;
}

html[data-ch-theme-mode="dark"] body .ch-profile-hub-nav a,
html[data-ch-theme-mode="dark"] body .ch-hub-page-nav a,
html[data-ch-theme-mode="dark"] body .ch-community-page-nav a,
html[data-ch-theme-mode="dark"] body .ch-profile-tabs a,
html[data-ch-theme-mode="dark"] body .ch-profile-subnav a,
html[data-ch-theme-mode="dark"] body .ch-profile-nav a,
body.ch-theme-mode-dark .ch-profile-hub-nav a,
body.ch-theme-mode-dark .ch-hub-page-nav a,
body.ch-theme-mode-dark .ch-community-page-nav a,
body.ch-theme-mode-dark .ch-profile-tabs a,
body.ch-theme-mode-dark .ch-profile-subnav a,
body.ch-theme-mode-dark .ch-profile-nav a,
body.ch-theme-dark .ch-profile-hub-nav a,
body.ch-theme-dark .ch-hub-page-nav a,
body.ch-theme-dark .ch-community-page-nav a,
body.ch-theme-dark .ch-profile-tabs a,
body.ch-theme-dark .ch-profile-subnav a,
body.ch-theme-dark .ch-profile-nav a {
	background: #142238 !important;
	color: #dbeafe !important;
	border-color: rgba(148, 163, 184, 0.24) !important;
	box-shadow: none !important;
}

html[data-ch-theme-mode="dark"] body .ch-profile-hub-nav a:hover,
html[data-ch-theme-mode="dark"] body .ch-hub-page-nav a:hover,
html[data-ch-theme-mode="dark"] body .ch-community-page-nav a:hover,
html[data-ch-theme-mode="dark"] body .ch-profile-tabs a:hover,
html[data-ch-theme-mode="dark"] body .ch-profile-subnav a:hover,
html[data-ch-theme-mode="dark"] body .ch-profile-nav a:hover,
body.ch-theme-mode-dark .ch-profile-hub-nav a:hover,
body.ch-theme-mode-dark .ch-hub-page-nav a:hover,
body.ch-theme-mode-dark .ch-community-page-nav a:hover,
body.ch-theme-mode-dark .ch-profile-tabs a:hover,
body.ch-theme-mode-dark .ch-profile-subnav a:hover,
body.ch-theme-mode-dark .ch-profile-nav a:hover,
body.ch-theme-dark .ch-profile-hub-nav a:hover,
body.ch-theme-dark .ch-hub-page-nav a:hover,
body.ch-theme-dark .ch-community-page-nav a:hover,
body.ch-theme-dark .ch-profile-tabs a:hover,
body.ch-theme-dark .ch-profile-subnav a:hover,
body.ch-theme-dark .ch-profile-nav a:hover {
	background: rgba(37, 99, 235, 0.24) !important;
	color: #ffffff !important;
	border-color: rgba(96, 165, 250, 0.45) !important;
}

/* Profile section title strip */
html[data-ch-theme-mode="dark"] body .ch-profile-section-header,
html[data-ch-theme-mode="dark"] body .ch-profile-section-title,
html[data-ch-theme-mode="dark"] body .ch-profile-feed-title,
html[data-ch-theme-mode="dark"] body .ch-profile-posts-title,
html[data-ch-theme-mode="dark"] body .ch-section-header,
html[data-ch-theme-mode="dark"] body .ch-section-title,
body.ch-theme-mode-dark .ch-profile-section-header,
body.ch-theme-mode-dark .ch-profile-section-title,
body.ch-theme-mode-dark .ch-profile-feed-title,
body.ch-theme-mode-dark .ch-profile-posts-title,
body.ch-theme-mode-dark .ch-section-header,
body.ch-theme-mode-dark .ch-section-title,
body.ch-theme-dark .ch-profile-section-header,
body.ch-theme-dark .ch-profile-section-title,
body.ch-theme-dark .ch-profile-feed-title,
body.ch-theme-dark .ch-profile-posts-title,
body.ch-theme-dark .ch-section-header,
body.ch-theme-dark .ch-section-title {
	background: #0f1b2d !important;
	color: #f8fafc !important;
	border: 1px solid rgba(148, 163, 184, 0.24) !important;
	box-shadow: none !important;
}

html[data-ch-theme-mode="dark"] body .ch-profile-section-header *,
html[data-ch-theme-mode="dark"] body .ch-profile-section-title *,
html[data-ch-theme-mode="dark"] body .ch-profile-feed-title *,
html[data-ch-theme-mode="dark"] body .ch-profile-posts-title *,
html[data-ch-theme-mode="dark"] body .ch-section-header *,
html[data-ch-theme-mode="dark"] body .ch-section-title *,
body.ch-theme-mode-dark .ch-profile-section-header *,
body.ch-theme-mode-dark .ch-profile-section-title *,
body.ch-theme-mode-dark .ch-profile-feed-title *,
body.ch-theme-mode-dark .ch-profile-posts-title *,
body.ch-theme-mode-dark .ch-section-header *,
body.ch-theme-mode-dark .ch-section-title *,
body.ch-theme-dark .ch-profile-section-header *,
body.ch-theme-dark .ch-profile-section-title *,
body.ch-theme-dark .ch-profile-feed-title *,
body.ch-theme-dark .ch-section-header *,
body.ch-theme-dark .ch-section-title * {
	color: #f8fafc !important;
}


/* =========================================================
   v0.2.6 Mobile navigation + wider social cards
   Theme-only polish. Keeps CommunityHub Core independent.
   ========================================================= */

/* Give the main CommunityHub social stack more presence on modern screens. */
.ch-theme-container--community {
  width: min(100% - 28px, 1280px) !important;
  max-width: 1280px !important;
}

.ch-theme-community-shell.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--community.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--post.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--saved.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--notifications.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
  max-width: 900px !important;
}

.ch-theme-community-shell--profile.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--members.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
  max-width: 1100px !important;
}

.ch-theme-community-shell.ch-theme-layout--sidebar-right {
  grid-template-columns: minmax(0, 860px) minmax(220px, 300px) !important;
  justify-content: center !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-left {
  grid-template-columns: minmax(220px, 300px) minmax(0, 860px) !important;
  justify-content: center !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-both {
  grid-template-columns: minmax(180px, 240px) minmax(0, 820px) minmax(180px, 240px) !important;
  justify-content: center !important;
}

.ch-theme-community-content-wrap > .ch-feed,
.ch-theme-community-content-wrap > .ch-composer,
.ch-theme-community-content-wrap .ch-feed,
.ch-theme-community-content-wrap .ch-composer,
.ch-theme-community-content-wrap .ch-bookmarks-page,
.ch-theme-community-content-wrap .ch-notifications-page,
.ch-theme-community-content-wrap .ch-community-feed-page,
.ch-theme-community-content-wrap .ch-community-single-post-page {
  width: 100% !important;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-content-wrap .ch-profile-page,
.ch-theme-community-content-wrap .ch-profile-route-wrap,
.ch-profile-header,
.ch-profile-page,
.ch-profile-route-wrap {
  width: 100% !important;
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-content-wrap .ch-feed .ch-activity-card,
.ch-theme-community-content-wrap .ch-activity-card {
  width: 100% !important;
}

/* Mobile header/dropdowns: hamburger = navigation panel, avatar = account panel. */
@media (max-width: 782px) {
  .ch-theme-header {
    z-index: 5000 !important;
  }

  .ch-theme-header-inner {
    min-height: 60px !important;
    gap: 8px !important;
  }

  .ch-theme-brand {
    max-width: calc(100vw - 170px) !important;
  }

  .ch-theme-header-actions {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    flex: 0 0 auto !important;
  }

  .ch-theme-mode-toggle,
  .ch-theme-menu-toggle,
  .ch-theme-account-toggle {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    border-radius: 999px !important;
  }

  .ch-theme-account-toggle {
    display: inline-flex !important;
    justify-content: center !important;
  }

  .ch-theme-account-avatar {
    width: 34px !important;
    height: 34px !important;
  }

  .ch-theme-account-name,
  .ch-theme-account-caret,
  .ch-theme-mode-toggle-text {
    display: none !important;
  }

  /* Hamburger panel should feel like a phone app menu, not a broken full page overlay. */
  .ch-theme-menu-panel {
    position: fixed !important;
    top: calc(var(--ch-mobile-header-top, 68px)) !important;
    left: auto !important;
    right: 10px !important;
    bottom: auto !important;
    width: min(360px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: min(640px, calc(100dvh - 86px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 12px !important;
    border-radius: 22px !important;
    background: var(--ch-theme-surface) !important;
    border: 1px solid var(--ch-theme-border) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28) !important;
    z-index: 5010 !important;
  }

  .admin-bar .ch-theme-menu-panel {
    top: calc(var(--ch-mobile-header-top, 78px)) !important;
    max-height: min(640px, calc(100dvh - 96px)) !important;
  }

  .ch-theme-menu-panel .ch-theme-menu-list,
  .ch-theme-menu-panel .ch-theme-community-nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  .ch-theme-menu-panel a,
  .ch-theme-menu-panel .ch-theme-nav-pill {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 11px 13px !important;
    border-radius: 15px !important;
    background: var(--ch-theme-surface-soft) !important;
    border: 1px solid var(--ch-theme-border) !important;
    color: var(--ch-theme-text) !important;
    text-decoration: none !important;
    box-shadow: none !important;
  }

  .ch-theme-menu-panel a:hover,
  .ch-theme-menu-panel .ch-theme-nav-pill:hover {
    transform: none !important;
    background: color-mix(in srgb, var(--ch-theme-blue) 12%, var(--ch-theme-surface)) !important;
    border-color: color-mix(in srgb, var(--ch-theme-blue) 42%, var(--ch-theme-border)) !important;
    color: var(--ch-theme-blue) !important;
  }

  .ch-theme-menu-panel .sub-menu {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 6px 0 0 !important;
    padding: 6px 0 0 10px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  /* Avatar dropdown should open directly below the avatar, aligned right. */
  .ch-theme-account-panel {
    position: fixed !important;
    top: calc(var(--ch-mobile-header-top, 68px)) !important;
    left: auto !important;
    right: 10px !important;
    bottom: auto !important;
    width: min(330px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: min(560px, calc(100dvh - 86px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 10px !important;
    border-radius: 22px !important;
    background: var(--ch-theme-surface) !important;
    border: 1px solid var(--ch-theme-border) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28) !important;
    z-index: 5020 !important;
  }

  .admin-bar .ch-theme-account-panel {
    top: calc(var(--ch-mobile-header-top, 78px)) !important;
    max-height: min(560px, calc(100dvh - 96px)) !important;
  }

  .ch-theme-account-panel-head {
    border-radius: 16px !important;
  }

  .ch-theme-account-panel a {
    min-height: 42px !important;
    border-radius: 14px !important;
    padding: 10px 12px !important;
  }

  html.ch-theme-menu-lock {
    overflow: auto !important;
  }
}

@media (max-width: 640px) {
  .ch-theme-container--community,
  .ch-theme-container,
  .ch-theme-header-inner,
  .ch-theme-footer-inner {
    width: min(100% - 16px, var(--ch-theme-max)) !important;
  }

  .ch-theme-community-shell {
    padding-top: 14px !important;
    gap: 12px !important;
  }

  .ch-theme-community-content-wrap,
  .ch-theme-community-content-wrap > .ch-feed,
  .ch-theme-community-content-wrap > .ch-composer,
  .ch-theme-community-content-wrap .ch-feed,
  .ch-theme-community-content-wrap .ch-composer,
  .ch-theme-community-content-wrap .ch-community-feed-page,
  .ch-theme-community-content-wrap .ch-community-single-post-page,
  .ch-theme-community-content-wrap .ch-bookmarks-page,
  .ch-theme-community-content-wrap .ch-notifications-page,
  .ch-theme-community-content-wrap .ch-profile-page,
  .ch-theme-community-content-wrap .ch-profile-route-wrap {
    width: 100% !important;
    max-width: 100% !important;
  }

  .ch-theme .ch-feed {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ch-theme .ch-composer,
  .ch-theme .ch-feed .ch-activity-card,
  .ch-theme .ch-activity-card {
    border-radius: 18px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}


/* =========================================================
   v0.2.7: Mobile menu/dropdown final positioning fix
   Keeps desktop header untouched. Mobile-only.
   ========================================================= */
@media (max-width: 782px) {
  body.ch-theme .ch-theme-header {
    z-index: 999900 !important;
    overflow: visible !important;
  }

  body.ch-theme .ch-theme-header-top,
  body.ch-theme .ch-theme-header-inner,
  body.ch-theme .ch-theme-header-actions,
  body.ch-theme .ch-theme-account,
  body.ch-theme .ch-theme-account--dropdown {
    overflow: visible !important;
  }

  body.ch-theme .ch-theme-header-actions > .ch-theme-account,
  body.ch-theme .ch-theme-header-actions .ch-theme-account--dropdown {
    display: inline-flex !important;
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.ch-theme .ch-theme-mode-toggle {
    order: 1 !important;
  }

  body.ch-theme .ch-theme-menu-toggle {
    order: 2 !important;
    display: inline-flex !important;
  }

  body.ch-theme .ch-theme-account {
    order: 3 !important;
  }

  /* The hamburger menu must render as a visible floating menu beside the button. */
  body.ch-theme #ch-theme-menu-panel,
  body.ch-theme .ch-theme-menu-panel {
    position: fixed !important;
    left: auto !important;
    right: var(--ch-mobile-menu-right, 10px) !important;
    top: var(--ch-mobile-menu-top, 68px) !important;
    bottom: auto !important;
    width: min(372px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - var(--ch-mobile-menu-top, 68px) - 12px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    padding: 12px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: var(--ch-theme-surface, #ffffff) !important;
    color: var(--ch-theme-text, #101828) !important;
    border: 1px solid var(--ch-theme-border, #d9e3f0) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34) !important;
    z-index: 999950 !important;
  }

  body.ch-theme #ch-theme-menu-panel[hidden],
  body.ch-theme .ch-theme-menu-panel[hidden] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  body.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.ch-theme .ch-theme-menu-panel nav,
  body.ch-theme .ch-theme-menu-panel .ch-theme-primary-menu,
  body.ch-theme .ch-theme-menu-panel .ch-theme-community-menu {
    display: block !important;
    width: 100% !important;
    margin: 0 0 10px !important;
  }

  body.ch-theme .ch-theme-menu-panel nav:last-child,
  body.ch-theme .ch-theme-menu-panel .ch-theme-primary-menu:last-child,
  body.ch-theme .ch-theme-menu-panel .ch-theme-community-menu:last-child {
    margin-bottom: 0 !important;
  }

  body.ch-theme .ch-theme-menu-panel ul,
  body.ch-theme .ch-theme-menu-panel .menu,
  body.ch-theme .ch-theme-menu-panel .ch-theme-menu-list,
  body.ch-theme .ch-theme-menu-panel .ch-theme-community-nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body.ch-theme .ch-theme-menu-panel li {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.ch-theme .ch-theme-menu-panel a,
  body.ch-theme .ch-theme-menu-panel button,
  body.ch-theme .ch-theme-menu-panel .ch-theme-nav-pill {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 14px !important;
    border-radius: 15px !important;
    background: var(--ch-theme-surface-soft, #f8fbff) !important;
    background-image: none !important;
    color: var(--ch-theme-text, #101828) !important;
    border: 1px solid var(--ch-theme-border, #d9e3f0) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    font-size: 15px !important;
    font-weight: 850 !important;
    line-height: 1.15 !important;
    text-align: left !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.ch-theme .ch-theme-menu-panel a:hover,
  body.ch-theme .ch-theme-menu-panel button:hover,
  body.ch-theme .ch-theme-menu-panel .ch-theme-nav-pill:hover {
    background: color-mix(in srgb, var(--ch-theme-blue, #0080ff) 12%, var(--ch-theme-surface, #ffffff)) !important;
    color: var(--ch-theme-blue, #0080ff) !important;
    border-color: color-mix(in srgb, var(--ch-theme-blue, #0080ff) 42%, var(--ch-theme-border, #d9e3f0)) !important;
    transform: none !important;
    filter: none !important;
  }

  body.ch-theme .ch-theme-menu-panel .sub-menu {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 6px 0 0 !important;
    padding: 6px 0 0 10px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  /* The avatar menu should act like a true dropdown aligned to the avatar. */
  body.ch-theme .ch-theme-account-panel {
    position: fixed !important;
    left: auto !important;
    right: var(--ch-mobile-account-right, 10px) !important;
    top: var(--ch-mobile-account-top, 68px) !important;
    bottom: auto !important;
    width: min(330px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - var(--ch-mobile-account-top, 68px) - 12px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    transform: none !important;
    padding: 10px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: var(--ch-theme-surface, #ffffff) !important;
    color: var(--ch-theme-text, #101828) !important;
    border: 1px solid var(--ch-theme-border, #d9e3f0) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34) !important;
    z-index: 999960 !important;
  }

  body.ch-theme .ch-theme-account-panel[hidden] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.ch-theme .ch-theme-account.is-open > .ch-theme-account-panel:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.ch-theme .ch-theme-account-panel-head {
    background: var(--ch-theme-surface-soft, #f8fbff) !important;
    border: 1px solid var(--ch-theme-border, #d9e3f0) !important;
    border-radius: 16px !important;
    color: var(--ch-theme-text, #101828) !important;
  }

  body.ch-theme .ch-theme-account-panel a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 43px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
    background: transparent !important;
    color: var(--ch-theme-text, #101828) !important;
    text-decoration: none !important;
  }

  body.ch-theme .ch-theme-account-panel a:hover {
    background: var(--ch-theme-surface-soft, #f8fbff) !important;
    color: var(--ch-theme-blue, #0080ff) !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-panel {
    background: #0f1b2d !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel a,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel button,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel .ch-theme-nav-pill,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-panel-head,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-panel a {
    background: #142238 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel a:hover,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel button:hover,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel .ch-theme-nav-pill:hover,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-panel a:hover {
    background: rgba(37, 99, 235, 0.24) !important;
    color: #ffffff !important;
  }
}


/* =========================================================
   v0.2.8: Mobile hamburger panel edge fix
   Avatar dropdown is intentionally untouched because it tested perfect
   on non-admin mobile accounts. Mobile-only.
   ========================================================= */
@media (max-width: 782px) {
  /*
   * Do not align the hamburger panel to the hamburger button.
   * On real phones the hamburger sits before the avatar, so a wide panel
   * aligned to that button can hang off the left side of the screen.
   * Make the menu a safe screen-width dropdown instead.
   */
  body.ch-theme #ch-theme-menu-panel,
  body.ch-theme .ch-theme-menu-panel {
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    top: var(--ch-mobile-menu-top, 68px) !important;
    bottom: auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    max-height: calc(100dvh - var(--ch-mobile-menu-top, 68px) - 12px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    transform: none !important;
    margin: 0 !important;
    padding: 12px !important;
    box-sizing: border-box !important;
  }

  body.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  body.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.ch-theme .ch-theme-menu-panel *,
  body.ch-theme #ch-theme-menu-panel * {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body.ch-theme .ch-theme-menu-panel .ch-theme-menu-list,
  body.ch-theme #ch-theme-menu-panel .ch-theme-menu-list,
  body.ch-theme .ch-theme-menu-panel .menu,
  body.ch-theme #ch-theme-menu-panel .menu,
  body.ch-theme .ch-theme-menu-panel .ch-theme-community-nav,
  body.ch-theme #ch-theme-menu-panel .ch-theme-community-nav {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  body.ch-theme .ch-theme-menu-panel a,
  body.ch-theme #ch-theme-menu-panel a,
  body.ch-theme .ch-theme-menu-panel .ch-theme-nav-pill,
  body.ch-theme #ch-theme-menu-panel .ch-theme-nav-pill {
    width: 100% !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }
}

/* =========================================================
   v0.2.9: Mobile hamburger submenu collapse
   Keeps avatar dropdown untouched. Mobile-only.
   ========================================================= */
@media (max-width: 782px) {
  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 46px !important;
    gap: 6px !important;
    align-items: start !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > a,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > a,
  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-theme-nav-pill,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-theme-nav-pill {
    grid-column: 1 / 2 !important;
    min-width: 0 !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-mobile-submenu-toggle,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-mobile-submenu-toggle {
    grid-column: 2 / 3 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    min-height: 46px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 15px !important;
    background: var(--ch-theme-surface-soft, #f8fbff) !important;
    background-image: none !important;
    color: var(--ch-theme-text, #101828) !important;
    border: 1px solid var(--ch-theme-border, #d9e3f0) !important;
    box-shadow: none !important;
    font-size: 20px !important;
    line-height: 1 !important;
    text-align: center !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-mobile-submenu-toggle span,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-mobile-submenu-toggle span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: transform 0.16s ease !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu.is-submenu-open > .ch-mobile-submenu-toggle span,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu.is-submenu-open > .ch-mobile-submenu-toggle span {
    transform: rotate(180deg) !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu {
    grid-column: 1 / -1 !important;
    display: none !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 2px 0 2px 10px !important;
    padding: 6px 0 6px 10px !important;
    border: 0 !important;
    border-left: 2px solid color-mix(in srgb, var(--ch-theme-blue, #0080ff) 32%, var(--ch-theme-border, #d9e3f0)) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu.is-submenu-open > .sub-menu,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu.is-submenu-open > .sub-menu {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu[hidden],
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu[hidden] {
    display: none !important;
  }

  body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu a,
  body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu a {
    min-height: 42px !important;
    font-size: 14px !important;
    padding: 10px 12px !important;
    border-radius: 13px !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-mobile-submenu-toggle,
  html[data-ch-theme-mode="dark"] body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .ch-mobile-submenu-toggle {
    background: #142238 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu,
  html[data-ch-theme-mode="dark"] body.ch-theme #ch-theme-menu-panel li.ch-mobile-has-submenu > .sub-menu {
    border-left-color: rgba(96, 165, 250, 0.42) !important;
  }
}

/* =========================================================
   v0.2.11: Desktop CommunityHub stack width + mobile widgets polish
   Theme-only. Keeps CommunityHub Core independent.
   ========================================================= */

/* Global CommunityHub route frame: use the available desktop space without letting
   content become too wide to read. */
.ch-theme-container--community {
  --ch-social-stack-width: 920px;
  --ch-profile-stack-width: 1040px;
  --ch-directory-stack-width: 1120px;
  width: min(100% - 32px, 1320px) !important;
  max-width: 1320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-shell {
  width: 100% !important;
  align-items: start !important;
  justify-content: center !important;
  gap: clamp(18px, 2vw, 28px) !important;
}

.ch-theme-community-content-wrap {
  width: 100% !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Activity/feed-like routes: one clean, uniform social reading width. */
.ch-theme-community-shell--community.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--post.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--saved.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--notifications.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
  max-width: var(--ch-social-stack-width) !important;
}

.ch-theme-community-shell--community .ch-theme-community-content-wrap > .ch-feed,
.ch-theme-community-shell--community .ch-theme-community-content-wrap > .ch-composer,
.ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-feed,
.ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-composer,
.ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-community-feed-page,
.ch-theme-community-shell--post .ch-theme-community-content-wrap .ch-community-single-post-page,
.ch-theme-community-shell--saved .ch-theme-community-content-wrap .ch-bookmarks-page,
.ch-theme-community-shell--notifications .ch-theme-community-content-wrap .ch-notifications-page {
  width: 100% !important;
  max-width: var(--ch-social-stack-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-shell--community .ch-composer,
.ch-theme-community-shell--community .ch-feed .ch-activity-card,
.ch-theme-community-shell--post .ch-feed .ch-activity-card,
.ch-theme-community-shell--saved .ch-feed .ch-activity-card,
.ch-theme-community-shell--notifications .ch-feed .ch-activity-card {
  width: 100% !important;
  max-width: 100% !important;
}

/* Sidebar layouts: keep the main stack wide and centered instead of squeezed. */
.ch-theme-community-shell.ch-theme-layout--sidebar-right {
  grid-template-columns: minmax(0, var(--ch-social-stack-width)) minmax(240px, 300px) !important;
  justify-content: center !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-left {
  grid-template-columns: minmax(240px, 300px) minmax(0, var(--ch-social-stack-width)) !important;
  justify-content: center !important;
}
.ch-theme-community-shell.ch-theme-layout--sidebar-both {
  grid-template-columns: minmax(180px, 240px) minmax(0, 860px) minmax(180px, 240px) !important;
  justify-content: center !important;
}

/* Profile routes: make the visible stack uniform — header, nav, section blocks,
   and post cards use the same desktop lane. */
.ch-theme-community-shell--profile.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--profile .ch-profile-route-wrap,
.ch-theme-community-shell--profile .ch-profile-page,
.ch-theme-community-shell--profile .ch-profile-shell,
.ch-theme-community-shell--profile .ch-profile-header,
.ch-theme-community-shell--profile .ch-profile-hub-nav,
.ch-theme-community-shell--profile .ch-hub-page-nav,
.ch-theme-community-shell--profile .ch-community-page-nav,
.ch-theme-community-shell--profile .ch-profile-tabs,
.ch-theme-community-shell--profile .ch-profile-section,
.ch-theme-community-shell--profile .ch-profile-section-header,
.ch-theme-community-shell--profile .ch-profile-section-title,
.ch-theme-community-shell--profile .ch-profile-posts,
.ch-theme-community-shell--profile .ch-profile-comments,
.ch-theme-community-shell--profile .ch-profile-media,
.ch-theme-community-shell--profile .ch-profile-about,
.ch-theme-community-shell--profile .ch-feed,
.ch-theme-community-shell--profile .ch-composer,
.ch-theme-community-shell--profile .ch-activity-card {
  width: 100% !important;
  max-width: var(--ch-profile-stack-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-shell--profile.ch-theme-layout--sidebar-right {
  grid-template-columns: minmax(0, min(100%, 960px)) minmax(240px, 300px) !important;
}
.ch-theme-community-shell--profile.ch-theme-layout--sidebar-left {
  grid-template-columns: minmax(240px, 300px) minmax(0, min(100%, 960px)) !important;
}

/* Member directory gets a little more room because cards benefit from columns. */
.ch-theme-community-shell--members.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--members .ch-members-directory-page,
.ch-theme-community-shell--members .ch-member-directory-page {
  width: 100% !important;
  max-width: var(--ch-directory-stack-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep mobile wide and immersive, but do not break the working mobile card width. */
@media (max-width: 782px) {
  .ch-theme-container--community {
    width: min(100% - 16px, var(--ch-theme-max)) !important;
  }
  .ch-theme-community-content-wrap,
  .ch-theme-community-content-wrap > .ch-feed,
  .ch-theme-community-content-wrap > .ch-composer,
  .ch-theme-community-content-wrap .ch-feed,
  .ch-theme-community-content-wrap .ch-composer,
  .ch-theme-community-content-wrap .ch-community-feed-page,
  .ch-theme-community-content-wrap .ch-community-single-post-page,
  .ch-theme-community-content-wrap .ch-bookmarks-page,
  .ch-theme-community-content-wrap .ch-notifications-page,
  .ch-theme-community-content-wrap .ch-profile-page,
  .ch-theme-community-content-wrap .ch-profile-route-wrap,
  .ch-profile-header,
  .ch-profile-hub-nav,
  .ch-hub-page-nav,
  .ch-profile-section-header,
  .ch-profile-section-title {
    max-width: 100% !important;
  }
}

/* Mobile Widget Bar: this only renders when Appearance → Widgets → Mobile Widget Bar
   has widgets assigned. It is intentionally hidden on full desktop and shown under
   content on tablet/mobile. */
.ch-theme-mobile-widget-bar {
  display: none !important;
}

@media (max-width: 1024px) {
  .ch-theme-mobile-widget-bar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: min(100% - 20px, 920px) !important;
    max-width: 920px !important;
    margin: 18px auto 28px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .ch-theme-mobile-widget-bar .ch-theme-widget,
  .ch-theme-mobile-widget-bar .widget,
  .ch-theme-mobile-widget-bar section {
    width: 100% !important;
    margin: 0 !important;
    background: var(--ch-theme-surface) !important;
    color: var(--ch-theme-text) !important;
    border: 1px solid var(--ch-theme-border) !important;
    border-radius: 18px !important;
    box-shadow: var(--ch-theme-soft-shadow, 0 12px 34px rgba(15, 23, 42, 0.08)) !important;
    padding: 16px !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mobile-widget-bar .ch-theme-widget,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mobile-widget-bar .widget,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mobile-widget-bar section {
    background: var(--ch-theme-surface) !important;
    color: var(--ch-theme-text) !important;
    border-color: var(--ch-theme-border) !important;
  }
}

/* =========================================================
   v0.2.12: Activity stack uniformity + mobile widget drawer
   Theme-only. Keeps CommunityHub Core independent.
   ========================================================= */

/* Activity feed should feel centered and intentional on desktop — not like a
   narrow left column floating in a huge empty lane. Keep the reading width
   engaging, uniform, and easy to scan. */
.ch-theme-container--community {
  --ch-social-stack-width: 820px;
  --ch-profile-stack-width: 1040px;
  --ch-directory-stack-width: 1120px;
}

.ch-theme-community-shell--community.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
.ch-theme-community-shell--post.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap {
  width: 100% !important;
  max-width: var(--ch-social-stack-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-shell--community .ch-theme-community-content-wrap > .ch-feed,
.ch-theme-community-shell--community .ch-theme-community-content-wrap > .ch-composer,
.ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-feed,
.ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-composer,
.ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-community-feed-page,
.ch-theme-community-shell--post .ch-theme-community-content-wrap > .ch-feed,
.ch-theme-community-shell--post .ch-theme-community-content-wrap .ch-feed,
.ch-theme-community-shell--post .ch-theme-community-content-wrap .ch-community-single-post-page {
  width: 100% !important;
  max-width: var(--ch-social-stack-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ch-theme-community-shell--community .ch-composer,
.ch-theme-community-shell--community .ch-feed .ch-activity-card,
.ch-theme-community-shell--community .ch-activity-card,
.ch-theme-community-shell--post .ch-feed .ch-activity-card,
.ch-theme-community-shell--post .ch-activity-card {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Do not let a Community Feed sidebar create a lopsided first impression.
   If sidebars are enabled, keep the feed lane centered and readable. */
.ch-theme-community-shell--community.ch-theme-layout--sidebar-right {
  grid-template-columns: minmax(0, var(--ch-social-stack-width)) minmax(230px, 280px) !important;
  justify-content: center !important;
}

.ch-theme-community-shell--community.ch-theme-layout--sidebar-left {
  grid-template-columns: minmax(230px, 280px) minmax(0, var(--ch-social-stack-width)) !important;
  justify-content: center !important;
}

.ch-theme-community-shell--community.ch-theme-layout--sidebar-both {
  grid-template-columns: minmax(170px, 220px) minmax(0, 780px) minmax(170px, 220px) !important;
  justify-content: center !important;
}

/* When the activity route is no-sidebar, center the visible app stack inside
   the route container instead of stretching the route frame. */
.ch-theme-community-shell--community.ch-theme-layout--no-sidebar,
.ch-theme-community-shell--post.ch-theme-layout--no-sidebar {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
}

/* Mobile remains immersive and close to the phone edge. */
@media (max-width: 782px) {
  .ch-theme-container--community {
    width: min(100% - 14px, var(--ch-theme-max)) !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--no-sidebar,
  .ch-theme-community-shell--post.ch-theme-layout--no-sidebar {
    display: block !important;
  }
}

/* Floating mobile widget drawer. This fixes the infinite-scroll problem where
   users may never reach widgets placed below the feed. */
.ch-theme-mobile-widget-toggle,
.ch-theme-mobile-widget-drawer {
  display: none;
}

@media (max-width: 1024px) {
  .ch-theme-mobile-widget-bar {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .ch-theme-mobile-widget-toggle {
    position: fixed !important;
    right: 14px !important;
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
    z-index: 2147482200 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 42px !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border)) !important;
    background: var(--ch-theme-blue) !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    box-shadow: 0 14px 34px rgba(0, 128, 255, 0.28) !important;
    cursor: pointer !important;
  }

  .ch-theme-mobile-widget-toggle-icon {
    font-size: 14px !important;
    line-height: 1 !important;
  }

  .ch-theme-mobile-widget-drawer {
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    z-index: 2147482300 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    max-height: min(72dvh, 640px) !important;
    overflow: hidden !important;
    background: var(--ch-theme-surface) !important;
    color: var(--ch-theme-text) !important;
    border: 1px solid var(--ch-theme-border) !important;
    border-radius: 22px !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.34) !important;
  }

  .ch-theme-mobile-widget-drawer[hidden] {
    display: none !important;
  }

  .ch-theme-mobile-widget-drawer-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid var(--ch-theme-border) !important;
    background: color-mix(in srgb, var(--ch-theme-surface) 92%, var(--ch-theme-blue) 8%) !important;
    color: var(--ch-theme-text) !important;
  }

  .ch-theme-mobile-widget-drawer-head strong {
    color: var(--ch-theme-text) !important;
    font-size: 15px !important;
    font-weight: 950 !important;
  }

  .ch-theme-mobile-widget-close {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--ch-theme-surface-soft) !important;
    color: var(--ch-theme-text) !important;
    box-shadow: none !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    cursor: pointer !important;
  }

  .ch-theme-mobile-widget-drawer-content {
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: grid !important;
    gap: 12px !important;
    padding: 14px !important;
  }

  .ch-theme-mobile-widget-drawer-content .ch-theme-widget,
  .ch-theme-mobile-widget-drawer-content .widget,
  .ch-theme-mobile-widget-drawer-content section {
    width: 100% !important;
    margin: 0 !important;
    background: var(--ch-theme-surface-soft) !important;
    color: var(--ch-theme-text) !important;
    border: 1px solid var(--ch-theme-border) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
    padding: 14px !important;
  }

  html.ch-theme-mobile-widgets-open {
    overflow: hidden !important;
  }
}

/* =========================================================
   v0.2.14: Activity stack standard + mobile widgets deferred
   Theme-only. Keeps CommunityHub Core independent.
   ========================================================= */

/* Desktop social pages should use one intentional reading lane. This prevents
   the activity feed from feeling left-heavy inside a too-wide frame. */
@media (min-width: 783px) {
  .ch-theme-container--community {
    --ch-social-stack-width: 780px;
    --ch-social-stack-wide: 820px;
  }

  .ch-theme-community-shell--community.ch-theme-layout--no-sidebar,
  .ch-theme-community-shell--post.ch-theme-layout--no-sidebar {
    display: grid !important;
    grid-template-columns: minmax(0, var(--ch-social-stack-width)) !important;
    justify-content: center !important;
    align-items: start !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
  .ch-theme-community-shell--post.ch-theme-layout--no-sidebar .ch-theme-community-content-wrap,
  .ch-theme-community-shell--community .ch-theme-community-content-wrap > .ch-feed,
  .ch-theme-community-shell--community .ch-theme-community-content-wrap > .ch-composer,
  .ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-community-feed-page,
  .ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-feed,
  .ch-theme-community-shell--community .ch-theme-community-content-wrap .ch-composer,
  .ch-theme-community-shell--post .ch-theme-community-content-wrap > .ch-feed,
  .ch-theme-community-shell--post .ch-theme-community-content-wrap .ch-feed,
  .ch-theme-community-shell--post .ch-theme-community-content-wrap .ch-community-single-post-page {
    width: 100% !important;
    max-width: var(--ch-social-stack-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .ch-theme-community-shell--community .ch-composer,
  .ch-theme-community-shell--community .ch-feed .ch-activity-card,
  .ch-theme-community-shell--community .ch-activity-card,
  .ch-theme-community-shell--post .ch-feed .ch-activity-card,
  .ch-theme-community-shell--post .ch-activity-card {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--sidebar-right {
    grid-template-columns: minmax(0, var(--ch-social-stack-width)) minmax(230px, 280px) !important;
    justify-content: center !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--sidebar-left {
    grid-template-columns: minmax(230px, 280px) minmax(0, var(--ch-social-stack-width)) !important;
    justify-content: center !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--sidebar-both {
    grid-template-columns: minmax(170px, 220px) minmax(0, var(--ch-social-stack-width)) minmax(170px, 220px) !important;
    justify-content: center !important;
  }
}

/* Remove v0.2.12 floating mobile widget button and replace it with a
   swipe-only right-side widget drawer. */
.ch-theme-mobile-widget-toggle {
  display: none !important;
}

.ch-theme-mobile-widget-swipe-zone,
.ch-theme-mobile-widget-backdrop,
.ch-theme-mobile-widget-drawer {
  display: none;
}

@media (max-width: 1024px) {
  .ch-theme-mobile-widget-bar {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .ch-theme-mobile-widget-swipe-zone {
    display: block !important;
    position: fixed !important;
    top: 72px !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 22px !important;
    z-index: 2147482000 !important;
    background: transparent !important;
    pointer-events: none !important;
  }

  .ch-theme-mobile-widget-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147482290 !important;
    display: block !important;
    background: rgba(2, 6, 23, 0.42) !important;
    backdrop-filter: blur(2px) !important;
  }

  .ch-theme-mobile-widget-backdrop[hidden] {
    display: none !important;
  }

  .ch-theme-mobile-widget-drawer {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    z-index: 2147482300 !important;
    width: min(86vw, 380px) !important;
    max-width: calc(100vw - 34px) !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    overflow: hidden !important;
    background: var(--ch-theme-surface) !important;
    color: var(--ch-theme-text) !important;
    border-left: 1px solid var(--ch-theme-border) !important;
    border-radius: 22px 0 0 22px !important;
    box-shadow: -24px 0 80px rgba(0, 0, 0, 0.34) !important;
    transform: translateX(106%) !important;
    transition: transform 0.22s ease !important;
  }

  .ch-theme-mobile-widget-drawer[hidden] {
    display: grid !important;
  }

  html.ch-theme-mobile-widgets-open .ch-theme-mobile-widget-drawer {
    transform: translateX(0) !important;
  }

  .admin-bar .ch-theme-mobile-widget-drawer {
    top: 46px !important;
  }

  .ch-theme-mobile-widget-drawer-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid var(--ch-theme-border) !important;
    background: color-mix(in srgb, var(--ch-theme-surface) 92%, var(--ch-theme-blue) 8%) !important;
    color: var(--ch-theme-text) !important;
  }

  .ch-theme-mobile-widget-drawer-head strong {
    color: var(--ch-theme-text) !important;
    font-size: 15px !important;
    font-weight: 950 !important;
  }

  .ch-theme-mobile-widget-close {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--ch-theme-surface-soft) !important;
    color: var(--ch-theme-text) !important;
    box-shadow: none !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    cursor: pointer !important;
  }

  .ch-theme-mobile-widget-drawer-content {
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: grid !important;
    gap: 12px !important;
    padding: 14px !important;
  }

  .ch-theme-mobile-widget-drawer-content .ch-theme-widget,
  .ch-theme-mobile-widget-drawer-content .widget,
  .ch-theme-mobile-widget-drawer-content section {
    width: 100% !important;
    margin: 0 !important;
    background: var(--ch-theme-surface-soft) !important;
    color: var(--ch-theme-text) !important;
    border: 1px solid var(--ch-theme-border) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
    padding: 14px !important;
  }

  html.ch-theme-mobile-widgets-open {
    overflow: hidden !important;
  }
}


/* =========================================================
   v0.2.14: Mobile widgets deferred
   Theme-only. Removes swipe/floating mobile widgets until widget UX is revisited.
   ========================================================= */
.ch-theme-mobile-widget-bar,
.ch-theme-mobile-widget-toggle,
.ch-theme-mobile-widget-swipe-zone,
.ch-theme-mobile-widget-backdrop,
.ch-theme-mobile-widget-drawer {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.ch-theme-mobile-widgets-open {
  overflow: auto !important;
}


/* =========================================================
   v0.2.15: Mobile notifications header, composer button polish,
   tighter desktop widget/sidebar gap, and mobile widgets deferred
   Theme-only. Keeps CommunityHub Core independent.
   ========================================================= */

/* Mobile widgets remain deferred: no floating button, no swipe zone, no drawer. */
.ch-theme-mobile-widget-toggle,
.ch-theme-mobile-widget-swipe-zone,
.ch-theme-mobile-widget-backdrop,
.ch-theme-mobile-widget-drawer,
.ch-theme-mobile-widget-drawer[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.ch-theme-mobile-widgets-open {
  overflow: auto !important;
}

/* Desktop community pages: keep the timeline width, but pull widget columns closer. */
@media (min-width: 1025px) {
  .ch-theme-community-shell {
    gap: clamp(10px, 1.05vw, 16px) !important;
    column-gap: clamp(10px, 1.05vw, 16px) !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--sidebar-right {
    grid-template-columns: minmax(0, var(--ch-social-stack-width, 780px)) minmax(230px, 280px) !important;
    gap: clamp(10px, 1.05vw, 16px) !important;
    justify-content: center !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--sidebar-left {
    grid-template-columns: minmax(230px, 280px) minmax(0, var(--ch-social-stack-width, 780px)) !important;
    gap: clamp(10px, 1.05vw, 16px) !important;
    justify-content: center !important;
  }

  .ch-theme-community-shell--community.ch-theme-layout--sidebar-both {
    grid-template-columns: minmax(170px, 220px) minmax(0, var(--ch-social-stack-width, 780px)) minmax(170px, 220px) !important;
    gap: clamp(8px, 0.9vw, 14px) !important;
    justify-content: center !important;
  }

  .ch-theme-sidebar,
  .ch-theme-community-shell .ch-theme-sidebar {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Composer button polish: remove the blue glow/blur around Post and Attach. */
.ch-theme .ch-composer-submit,
.ch-theme .ch-composer-upload,
.ch-theme .ch-composer .ch-composer-submit,
.ch-theme .ch-composer .ch-composer-upload,
.ch-theme .ch-composer-actions .ch-composer-submit,
.ch-theme .ch-composer-actions .ch-composer-upload {
  box-shadow: none !important;
  filter: none !important;
}

.ch-theme .ch-composer-submit,
.ch-theme .ch-composer .ch-composer-submit,
.ch-theme .ch-composer-actions .ch-composer-submit {
  background: #2563eb !important;
  color: #ffffff !important;
  border: 1px solid #2563eb !important;
}

.ch-theme .ch-composer-submit:hover,
.ch-theme .ch-composer .ch-composer-submit:hover,
.ch-theme .ch-composer-actions .ch-composer-submit:hover {
  background: #1d4ed8 !important;
  border-color: #1d4ed8 !important;
  box-shadow: none !important;
  transform: none !important;
}

.ch-theme .ch-composer-upload,
.ch-theme .ch-composer .ch-composer-upload,
.ch-theme .ch-composer-actions .ch-composer-upload {
  background: var(--ch-theme-surface-soft, #f8fafc) !important;
  color: var(--ch-theme-text, #111827) !important;
  border: 1px solid var(--ch-theme-border, #dbe3ec) !important;
}

.ch-theme .ch-composer-upload:hover,
.ch-theme .ch-composer .ch-composer-upload:hover,
.ch-theme .ch-composer-actions .ch-composer-upload:hover {
  background: color-mix(in srgb, var(--ch-theme-blue, #0080ff) 9%, var(--ch-theme-surface, #ffffff)) !important;
  border-color: color-mix(in srgb, var(--ch-theme-blue, #0080ff) 30%, var(--ch-theme-border, #dbe3ec)) !important;
  color: var(--ch-theme-blue, #0080ff) !important;
  box-shadow: none !important;
  transform: none !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-upload,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer .ch-composer-upload,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-actions .ch-composer-upload {
  background: rgba(255, 255, 255, 0.055) !important;
  color: #f8fafc !important;
  border-color: rgba(148, 163, 184, 0.24) !important;
}

/* Mobile Notifications header: compact app-style stack that does not crowd. */
@media (max-width: 782px) {
  .ch-theme-community-shell--notifications .ch-theme-community-content-wrap,
  .ch-theme-community-shell--notifications .ch-notifications-page {
    width: 100% !important;
    max-width: 100% !important;
  }

  .ch-notifications-header,
  .ch-theme .ch-notifications-header,
  .ch-theme-community-shell--notifications .ch-notifications-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: start !important;
    width: 100% !important;
    margin: 0 0 12px !important;
    padding: 14px !important;
    border-radius: 18px !important;
    background: var(--ch-theme-surface, #ffffff) !important;
    border: 1px solid var(--ch-theme-border, #dbe3ec) !important;
    box-shadow: var(--ch-theme-soft-shadow, 0 10px 28px rgba(15, 23, 42, 0.07)) !important;
    color: var(--ch-theme-text, #111827) !important;
    text-align: left !important;
  }

  .ch-notifications-header h1,
  .ch-notifications-header h2,
  .ch-notifications-header h3,
  .ch-theme .ch-notifications-header h1,
  .ch-theme .ch-notifications-header h2,
  .ch-theme .ch-notifications-header h3 {
    margin: 0 !important;
    color: var(--ch-theme-text, #111827) !important;
    font-size: clamp(1.35rem, 7vw, 1.85rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.04em !important;
  }

  .ch-notifications-header p,
  .ch-notifications-header .ch-muted,
  .ch-notifications-header .ch-notifications-description,
  .ch-theme .ch-notifications-header p {
    margin: 2px 0 0 !important;
    color: var(--ch-theme-muted, #64748b) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
  }

  .ch-notifications-header-actions,
  .ch-notifications-actions,
  .ch-theme .ch-notifications-header .ch-actions,
  .ch-theme .ch-notifications-header form {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .ch-notifications-header button,
  .ch-notifications-header a.button,
  .ch-notifications-header .button,
  .ch-notification-mark-read,
  .ch-notifications-mark-read,
  .ch-theme .ch-notifications-header button,
  .ch-theme .ch-notifications-header a {
    width: auto !important;
    max-width: 100% !important;
    min-height: 36px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 12.5px !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--notifications .ch-notifications-header {
    background: #0f1b2d !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
    color: #f8fafc !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header h1,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header h2,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header h3 {
    color: #f8fafc !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header p,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header .ch-muted,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header .ch-notifications-description {
    color: #a8b5c7 !important;
  }
}

/* =========================================================
   v0.2.16: Saved header, member search polish, wider desktop widgets
   Theme-only. Keeps CommunityHub Core independent.
   ========================================================= */

/* Mobile widgets remain deferred. */
.ch-theme-mobile-widget-toggle,
.ch-theme-mobile-widget-swipe-zone,
.ch-theme-mobile-widget-backdrop,
.ch-theme-mobile-widget-drawer,
.ch-theme-mobile-widget-drawer[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.ch-theme-mobile-widgets-open {
  overflow: auto !important;
}

/* Desktop: give widget/sidebar columns more breathing room without narrowing the timeline. */
@media (min-width: 1180px) {
  .ch-theme-container--community {
    width: min(100% - 32px, 1540px) !important;
    max-width: 1540px !important;
    --ch-social-stack-width: 820px;
    --ch-profile-stack-width: 1040px;
    --ch-directory-stack-width: 1120px;
  }

  .ch-theme-community-shell {
    gap: clamp(12px, 1.1vw, 18px) !important;
    column-gap: clamp(12px, 1.1vw, 18px) !important;
    justify-content: center !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-right {
    grid-template-columns: minmax(0, var(--ch-social-stack-width, 820px)) minmax(280px, 340px) !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-left {
    grid-template-columns: minmax(280px, 340px) minmax(0, var(--ch-social-stack-width, 820px)) !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-both,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-both {
    grid-template-columns: minmax(250px, 320px) minmax(0, var(--ch-social-stack-width, 820px)) minmax(250px, 320px) !important;
  }

  .ch-theme-sidebar,
  .ch-theme-community-shell .ch-theme-sidebar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 340px !important;
    padding: 14px !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-both .ch-theme-sidebar,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-both .ch-theme-sidebar {
    max-width: 320px !important;
  }

  .ch-theme-sidebar .ch-theme-widget,
  .ch-theme-sidebar .widget,
  .ch-theme-sidebar section {
    width: 100% !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .ch-theme-sidebar .widget img,
  .ch-theme-sidebar .ch-theme-widget img,
  .ch-theme-sidebar section img,
  .ch-theme-sidebar iframe,
  .ch-theme-sidebar video,
  .ch-theme-sidebar table {
    max-width: 100% !important;
  }
}

/* Saved Posts header should match the polished mobile Notifications header. */
@media (max-width: 782px) {
  .ch-theme-community-shell--saved .ch-theme-community-content-wrap,
  .ch-theme-community-shell--saved .ch-bookmarks-page {
    width: 100% !important;
    max-width: 100% !important;
  }

  .ch-bookmarks-header,
  .ch-theme .ch-bookmarks-header,
  .ch-theme-community-shell--saved .ch-bookmarks-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: start !important;
    width: 100% !important;
    margin: 0 0 12px !important;
    padding: 14px !important;
    border-radius: 18px !important;
    background: var(--ch-theme-surface, #ffffff) !important;
    border: 1px solid var(--ch-theme-border, #dbe3ec) !important;
    box-shadow: var(--ch-theme-soft-shadow, 0 10px 28px rgba(15, 23, 42, 0.07)) !important;
    color: var(--ch-theme-text, #111827) !important;
    text-align: left !important;
  }

  .ch-bookmarks-header h1,
  .ch-bookmarks-header h2,
  .ch-bookmarks-header h3,
  .ch-theme .ch-bookmarks-header h1,
  .ch-theme .ch-bookmarks-header h2,
  .ch-theme .ch-bookmarks-header h3 {
    margin: 0 !important;
    color: var(--ch-theme-text, #111827) !important;
    font-size: clamp(1.35rem, 7vw, 1.85rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.04em !important;
  }

  .ch-bookmarks-header p,
  .ch-bookmarks-header .ch-muted,
  .ch-bookmarks-header .ch-bookmarks-description,
  .ch-theme .ch-bookmarks-header p {
    margin: 2px 0 0 !important;
    color: var(--ch-theme-muted, #64748b) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
  }

  .ch-bookmarks-header-actions,
  .ch-bookmarks-actions,
  .ch-theme .ch-bookmarks-header .ch-actions,
  .ch-theme .ch-bookmarks-header form {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .ch-bookmarks-header button,
  .ch-bookmarks-header a.button,
  .ch-bookmarks-header .button,
  .ch-theme .ch-bookmarks-header button,
  .ch-theme .ch-bookmarks-header a {
    width: auto !important;
    max-width: 100% !important;
    min-height: 36px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 12.5px !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header {
    background: #0f1b2d !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
    color: #f8fafc !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header h1,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header h2,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header h3 {
    color: #f8fafc !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header p,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header .ch-muted,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header .ch-bookmarks-description {
    color: #a8b5c7 !important;
  }
}

/* Members page search/filter polish. Targets several possible class names safely. */
.ch-theme-community-shell--members .ch-member-directory-header,
.ch-theme-community-shell--members .ch-members-header {
  margin-bottom: 14px !important;
}

.ch-theme-community-shell--members .ch-member-directory-search,
.ch-theme-community-shell--members .ch-members-search,
.ch-theme-community-shell--members .ch-member-search,
.ch-theme-community-shell--members .ch-directory-search,
.ch-theme-community-shell--members .ch-member-directory-filters,
.ch-theme-community-shell--members .ch-members-directory-filters,
.ch-theme-community-shell--members .ch-members-filter-bar,
.ch-theme-community-shell--members form[role="search"] {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 12px !important;
  border-radius: 20px !important;
  background: var(--ch-theme-surface, #ffffff) !important;
  border: 1px solid var(--ch-theme-border, #dbe3ec) !important;
  box-shadow: var(--ch-theme-soft-shadow, 0 12px 34px rgba(15, 23, 42, 0.06)) !important;
}

.ch-theme-community-shell--members .ch-member-directory-search input[type="search"],
.ch-theme-community-shell--members .ch-member-directory-search input[type="text"],
.ch-theme-community-shell--members .ch-members-search input[type="search"],
.ch-theme-community-shell--members .ch-members-search input[type="text"],
.ch-theme-community-shell--members .ch-member-search input[type="search"],
.ch-theme-community-shell--members .ch-member-search input[type="text"],
.ch-theme-community-shell--members .ch-directory-search input[type="search"],
.ch-theme-community-shell--members .ch-directory-search input[type="text"],
.ch-theme-community-shell--members .ch-member-directory-filters input[type="search"],
.ch-theme-community-shell--members .ch-member-directory-filters input[type="text"],
.ch-theme-community-shell--members .ch-members-directory-filters input[type="search"],
.ch-theme-community-shell--members .ch-members-directory-filters input[type="text"],
.ch-theme-community-shell--members .ch-members-filter-bar input[type="search"],
.ch-theme-community-shell--members .ch-members-filter-bar input[type="text"],
.ch-theme-community-shell--members form[role="search"] input[type="search"],
.ch-theme-community-shell--members form[role="search"] input[type="text"] {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  min-height: 44px !important;
  border-radius: 999px !important;
  background: var(--ch-theme-surface-soft, #f8fafc) !important;
  border: 1px solid var(--ch-theme-border, #dbe3ec) !important;
  color: var(--ch-theme-text, #111827) !important;
  padding: 10px 14px !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

.ch-theme-community-shell--members .ch-member-directory-search button,
.ch-theme-community-shell--members .ch-members-search button,
.ch-theme-community-shell--members .ch-member-search button,
.ch-theme-community-shell--members .ch-directory-search button,
.ch-theme-community-shell--members .ch-member-directory-filters button,
.ch-theme-community-shell--members .ch-members-directory-filters button,
.ch-theme-community-shell--members .ch-members-filter-bar button,
.ch-theme-community-shell--members form[role="search"] button,
.ch-theme-community-shell--members form[role="search"] input[type="submit"] {
  flex: 0 0 auto !important;
  min-height: 42px !important;
  border-radius: 999px !important;
  padding: 9px 14px !important;
  background: var(--ch-theme-blue, #0080ff) !important;
  color: #ffffff !important;
  border: 1px solid var(--ch-theme-blue, #0080ff) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.ch-theme-community-shell--members .ch-member-directory-search select,
.ch-theme-community-shell--members .ch-members-search select,
.ch-theme-community-shell--members .ch-member-directory-filters select,
.ch-theme-community-shell--members .ch-members-directory-filters select,
.ch-theme-community-shell--members .ch-members-filter-bar select {
  min-height: 42px !important;
  border-radius: 999px !important;
  padding: 9px 36px 9px 13px !important;
  background: var(--ch-theme-surface-soft, #f8fafc) !important;
  color: var(--ch-theme-text, #111827) !important;
  border: 1px solid var(--ch-theme-border, #dbe3ec) !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-member-directory-search,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-members-search,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-member-search,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-directory-search,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-member-directory-filters,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-members-directory-filters,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members .ch-members-filter-bar,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--members form[role="search"] {
  background: #0f1b2d !important;
  border-color: rgba(148, 163, 184, 0.24) !important;
  color: #f8fafc !important;
}

@media (max-width: 640px) {
  .ch-theme-community-shell--members .ch-member-directory-search,
  .ch-theme-community-shell--members .ch-members-search,
  .ch-theme-community-shell--members .ch-member-search,
  .ch-theme-community-shell--members .ch-directory-search,
  .ch-theme-community-shell--members .ch-member-directory-filters,
  .ch-theme-community-shell--members .ch-members-directory-filters,
  .ch-theme-community-shell--members .ch-members-filter-bar,
  .ch-theme-community-shell--members form[role="search"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    padding: 11px !important;
    border-radius: 18px !important;
  }

  .ch-theme-community-shell--members .ch-member-directory-search button,
  .ch-theme-community-shell--members .ch-members-search button,
  .ch-theme-community-shell--members .ch-member-search button,
  .ch-theme-community-shell--members .ch-directory-search button,
  .ch-theme-community-shell--members form[role="search"] button,
  .ch-theme-community-shell--members form[role="search"] input[type="submit"] {
    width: 100% !important;
  }
}

/* =========================================================
   v0.2.18: Desktop widget column correction
   - Reverts internal widget scrolling from v0.2.17.
   - Keeps widget columns very close to timeline without shrinking either.
   - Uses JS guard spacer to delay feed infinite-scroll until long widgets can be reached.
   Theme-only. Core plugin untouched.
   ========================================================= */

@media (min-width: 1180px) {
  .ch-theme-container--community {
    width: min(100% - 24px, 1540px) !important;
    max-width: 1540px !important;
    --ch-social-stack-width: 820px;
  }

  .ch-theme-community-shell,
  .ch-theme-community-shell--community {
    gap: 4px !important;
    column-gap: 4px !important;
    align-items: start !important;
    justify-content: center !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-right {
    grid-template-columns: minmax(0, var(--ch-social-stack-width, 820px)) minmax(280px, 340px) !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-left {
    grid-template-columns: minmax(280px, 340px) minmax(0, var(--ch-social-stack-width, 820px)) !important;
  }

  .ch-theme-community-shell.ch-theme-layout--sidebar-both,
  .ch-theme-community-shell--community.ch-theme-layout--sidebar-both {
    grid-template-columns: minmax(250px, 320px) minmax(0, var(--ch-social-stack-width, 820px)) minmax(250px, 320px) !important;
  }

  /* Important: widgets scroll naturally with the page. No internal scroll lane. */
  .ch-theme-community-shell .ch-theme-sidebar,
  .ch-theme-community-shell--community .ch-theme-sidebar {
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    -webkit-overflow-scrolling: auto !important;
    scrollbar-gutter: auto !important;
    padding: 12px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }


  /* Keep columns visually tight to the timeline without changing column widths. */
  .ch-theme-community-shell .ch-theme-sidebar--left,
  .ch-theme-community-shell--community .ch-theme-sidebar--left {
    margin-right: 0 !important;
  }

  .ch-theme-community-shell .ch-theme-sidebar--right,
  .ch-theme-community-shell--community .ch-theme-sidebar--right {
    margin-left: 0 !important;
  }

  .ch-theme-community-shell .ch-theme-community-content-wrap,
  .ch-theme-community-shell--community .ch-theme-community-content-wrap {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* JS sets this height only when side widgets are taller than the feed area.
     It pushes the feed loader/sentinel lower so infinite scroll waits until
     the long widget column has had room to scroll into view. */
  .ch-sidebar-feed-guard {
    display: block !important;
    width: 100% !important;
    height: var(--ch-sidebar-feed-guard-height, 0px) !important;
    min-height: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }
}

@media (min-width: 1480px) {
  .ch-theme-community-shell,
  .ch-theme-community-shell--community {
    gap: 4px !important;
    column-gap: 4px !important;
  }
}

/* =========================================================
   v0.2.18 final: Tighten desktop social canvas and top dead space
   - Keep timeline width and widget column width.
   - Pull visible widget cards closer by removing extra sidebar wrapper padding.
   - Reduce top dead space on CommunityHub social screens.
   Theme-only. Core plugin untouched.
   ========================================================= */

@media (min-width: 1180px) {
  /* Make the visible distance between widget cards and timeline feel like the
     spacing between post cards, without shrinking either lane. */
  .ch-theme-community-shell,
  .ch-theme-community-shell--community {
    gap: 6px !important;
    column-gap: 6px !important;
  }

  .ch-theme-community-shell .ch-theme-sidebar,
  .ch-theme-community-shell--community .ch-theme-sidebar {
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }

  .ch-theme-community-shell .ch-theme-sidebar .ch-theme-widget,
  .ch-theme-community-shell--community .ch-theme-sidebar .ch-theme-widget,
  .ch-theme-community-shell .ch-theme-sidebar .widget,
  .ch-theme-community-shell--community .ch-theme-sidebar .widget,
  .ch-theme-community-shell .ch-theme-sidebar section,
  .ch-theme-community-shell--community .ch-theme-sidebar section {
    margin-bottom: 10px !important;
  }

  /* Content should start quickly. Users are here to read/post, not look at dead space. */
  body.ch-route-community .ch-theme-main,
  body.ch-route-profile .ch-theme-main,
  body.ch-route-members .ch-theme-main,
  body.ch-route-notifications .ch-theme-main,
  body.ch-route-saved .ch-theme-main,
  body[class*="ch-route-community"] .ch-theme-main,
  body[class*="ch-route-profile"] .ch-theme-main {
    padding-top: 12px !important;
  }

  .ch-theme-container--community .ch-theme-community-shell,
  .ch-theme-community-shell,
  .ch-theme-community-shell--community,
  .ch-theme-community-shell--profile,
  .ch-theme-community-shell--members,
  .ch-theme-community-shell--notifications,
  .ch-theme-community-shell--saved {
    padding-top: 10px !important;
  }

  .ch-theme-community-content-wrap > :first-child,
  .ch-theme-community-content-wrap .ch-composer:first-child,
  .ch-theme-community-content-wrap .ch-feed:first-child,
  .ch-profile-page:first-child,
  .ch-members-directory-page:first-child,
  .ch-notifications-page:first-child,
  .ch-bookmarks-page:first-child {
    margin-top: 0 !important;
  }
}

@media (max-width: 1179px) {
  body.ch-route-community .ch-theme-main,
  body.ch-route-profile .ch-theme-main,
  body.ch-route-members .ch-theme-main,
  body.ch-route-notifications .ch-theme-main,
  body.ch-route-saved .ch-theme-main,
  body[class*="ch-route-community"] .ch-theme-main,
  body[class*="ch-route-profile"] .ch-theme-main {
    padding-top: 12px !important;
  }

  .ch-theme-community-shell,
  .ch-theme-community-shell--community,
  .ch-theme-community-shell--profile,
  .ch-theme-community-shell--members,
  .ch-theme-community-shell--notifications,
  .ch-theme-community-shell--saved {
    padding-top: 10px !important;
  }
}

@media (max-width: 640px) {
  body.ch-route-community .ch-theme-main,
  body.ch-route-profile .ch-theme-main,
  body.ch-route-members .ch-theme-main,
  body.ch-route-notifications .ch-theme-main,
  body.ch-route-saved .ch-theme-main,
  body[class*="ch-route-community"] .ch-theme-main,
  body[class*="ch-route-profile"] .ch-theme-main {
    padding-top: 8px !important;
  }

  .ch-theme-community-shell,
  .ch-theme-community-shell--community,
  .ch-theme-community-shell--profile,
  .ch-theme-community-shell--members,
  .ch-theme-community-shell--notifications,
  .ch-theme-community-shell--saved {
    padding-top: 8px !important;
  }
}

/* =========================================================
   v0.2.19: Equalize desktop widget-to-timeline spacing
   - Keep current timeline width.
   - Keep current widget column width.
   - Make left/right widget columns hug the timeline equally.
   - Reduce visible dead gap without changing mobile behavior.
   Theme-only. Core plugin untouched.
   ========================================================= */

@media (min-width: 1180px) {
  body.ch-route-community .ch-theme-container--community,
  body[class*="ch-route-community"] .ch-theme-container--community {
    width: min(100% - 20px, 1540px) !important;
    max-width: 1540px !important;
    --ch-social-stack-width: 820px;
    --ch-social-widget-width: 340px;
    --ch-social-widget-gap: 8px;
  }

  body.ch-route-community .ch-theme-community-shell,
  body.ch-route-community .ch-theme-community-shell--community,
  body[class*="ch-route-community"] .ch-theme-community-shell,
  body[class*="ch-route-community"] .ch-theme-community-shell--community {
    display: grid !important;
    align-items: start !important;
    justify-content: center !important;
    gap: var(--ch-social-widget-gap) !important;
    column-gap: var(--ch-social-widget-gap) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-both,
  body.ch-route-community .ch-theme-community-shell--community.ch-theme-layout--sidebar-both,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both,
  body[class*="ch-route-community"] .ch-theme-community-shell--community.ch-theme-layout--sidebar-both {
    grid-template-columns:
      minmax(300px, var(--ch-social-widget-width))
      minmax(0, var(--ch-social-stack-width))
      minmax(300px, var(--ch-social-widget-width)) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  body.ch-route-community .ch-theme-community-shell--community.ch-theme-layout--sidebar-left,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  body[class*="ch-route-community"] .ch-theme-community-shell--community.ch-theme-layout--sidebar-left {
    grid-template-columns:
      minmax(300px, var(--ch-social-widget-width))
      minmax(0, var(--ch-social-stack-width)) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  body.ch-route-community .ch-theme-community-shell--community.ch-theme-layout--sidebar-right,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  body[class*="ch-route-community"] .ch-theme-community-shell--community.ch-theme-layout--sidebar-right {
    grid-template-columns:
      minmax(0, var(--ch-social-stack-width))
      minmax(300px, var(--ch-social-widget-width)) !important;
  }

  /* The important part: if a sidebar track has extra room, the visible card edge
     should sit nearest the timeline, not drift toward the outside of the page. */
  body.ch-route-community .ch-theme-sidebar--left,
  body[class*="ch-route-community"] .ch-theme-sidebar--left {
    justify-self: end !important;
    width: 100% !important;
    max-width: var(--ch-social-widget-width) !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
  }

  body.ch-route-community .ch-theme-sidebar--right,
  body[class*="ch-route-community"] .ch-theme-sidebar--right {
    justify-self: start !important;
    width: 100% !important;
    max-width: var(--ch-social-widget-width) !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  body.ch-route-community .ch-theme-community-content-wrap,
  body[class*="ch-route-community"] .ch-theme-community-content-wrap {
    justify-self: center !important;
    width: 100% !important;
    max-width: var(--ch-social-stack-width) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.ch-route-community .ch-composer,
  body.ch-route-community .ch-feed,
  body.ch-route-community .ch-single-post,
  body[class*="ch-route-community"] .ch-composer,
  body[class*="ch-route-community"] .ch-feed,
  body[class*="ch-route-community"] .ch-single-post {
    width: 100% !important;
    max-width: var(--ch-social-stack-width) !important;
  }
}

@media (min-width: 1480px) {
  body.ch-route-community .ch-theme-container--community,
  body[class*="ch-route-community"] .ch-theme-container--community {
    --ch-social-widget-gap: 8px;
  }
}

/* =========================================================
   v0.2.20: Equal social side gaps + top spacing cleanup
   - Keep timeline width.
   - Keep widget column width.
   - Make left/right widget-to-timeline distance match.
   - Tighten Saved/Notifications top dead space too.
   Theme-only. Core plugin untouched.
   ========================================================= */

@media (min-width: 1180px) {
  body.ch-route-community .ch-theme-container--community,
  body[class*="ch-route-community"] .ch-theme-container--community {
    width: min(100% - 12px, 1556px) !important;
    max-width: 1556px !important;
    --ch-social-stack-width: 820px;
    --ch-social-widget-width: 340px;
    --ch-social-widget-gap: 4px;
  }

  body.ch-route-community .ch-theme-community-shell,
  body[class*="ch-route-community"] .ch-theme-community-shell {
    gap: var(--ch-social-widget-gap) !important;
    column-gap: var(--ch-social-widget-gap) !important;
    row-gap: 10px !important;
    justify-content: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-both,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both {
    grid-template-columns:
      var(--ch-social-widget-width)
      var(--ch-social-stack-width)
      var(--ch-social-widget-width) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-left {
    grid-template-columns:
      var(--ch-social-widget-width)
      var(--ch-social-stack-width) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-right {
    grid-template-columns:
      var(--ch-social-stack-width)
      var(--ch-social-widget-width) !important;
  }

  body.ch-route-community .ch-theme-sidebar--left,
  body.ch-route-community .ch-theme-sidebar--right,
  body[class*="ch-route-community"] .ch-theme-sidebar--left,
  body[class*="ch-route-community"] .ch-theme-sidebar--right {
    width: var(--ch-social-widget-width) !important;
    max-width: var(--ch-social-widget-width) !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-self: stretch !important;
  }

  body.ch-route-community .ch-theme-community-content-wrap,
  body[class*="ch-route-community"] .ch-theme-community-content-wrap {
    width: var(--ch-social-stack-width) !important;
    max-width: var(--ch-social-stack-width) !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.ch-route-community .ch-composer,
  body.ch-route-community .ch-feed,
  body.ch-route-community .ch-single-post,
  body.ch-route-community .ch-feed .ch-activity-card,
  body[class*="ch-route-community"] .ch-composer,
  body[class*="ch-route-community"] .ch-feed,
  body[class*="ch-route-community"] .ch-single-post,
  body[class*="ch-route-community"] .ch-feed .ch-activity-card {
    width: 100% !important;
    max-width: var(--ch-social-stack-width) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* Social pages should start closer to the header. Keep a small intentional gap only. */
body.ch-route-community .ch-theme-main,
body[class*="ch-route-community"] .ch-theme-main,
body.ch-route-community .ch-theme-community-main,
body[class*="ch-route-community"] .ch-theme-community-main {
  padding-top: 6px !important;
}

body.ch-route-community .ch-theme-container--community,
body[class*="ch-route-community"] .ch-theme-container--community,
body.ch-route-community .ch-theme-community-shell,
body[class*="ch-route-community"] .ch-theme-community-shell,
body.ch-route-community .ch-theme-community-shell--community,
body.ch-route-community .ch-theme-community-shell--profile,
body.ch-route-community .ch-theme-community-shell--members,
body.ch-route-community .ch-theme-community-shell--notifications,
body.ch-route-community .ch-theme-community-shell--saved,
body[class*="ch-route-community"] .ch-theme-community-shell--community,
body[class*="ch-route-community"] .ch-theme-community-shell--profile,
body[class*="ch-route-community"] .ch-theme-community-shell--members,
body[class*="ch-route-community"] .ch-theme-community-shell--notifications,
body[class*="ch-route-community"] .ch-theme-community-shell--saved {
  padding-top: 6px !important;
  margin-top: 0 !important;
}

body.ch-route-community .ch-theme-community-content-wrap > :first-child,
body[class*="ch-route-community"] .ch-theme-community-content-wrap > :first-child,
body.ch-route-community .ch-bookmarks-page,
body.ch-route-community .ch-notifications-page,
body.ch-route-community .ch-members-directory-page,
body.ch-route-community .ch-profile-page,
body[class*="ch-route-community"] .ch-bookmarks-page,
body[class*="ch-route-community"] .ch-notifications-page,
body[class*="ch-route-community"] .ch-members-directory-page,
body[class*="ch-route-community"] .ch-profile-page {
  margin-top: 0 !important;
}

body.ch-route-community .ch-bookmarks-header,
body.ch-route-community .ch-notifications-header,
body.ch-route-community .ch-members-directory-header,
body[class*="ch-route-community"] .ch-bookmarks-header,
body[class*="ch-route-community"] .ch-notifications-header,
body[class*="ch-route-community"] .ch-members-directory-header {
  margin-top: 0 !important;
}

@media (max-width: 781px) {
  body.ch-route-community .ch-theme-main,
  body[class*="ch-route-community"] .ch-theme-main,
  body.ch-route-community .ch-theme-community-main,
  body[class*="ch-route-community"] .ch-theme-community-main {
    padding-top: 4px !important;
  }

  body.ch-route-community .ch-theme-container--community,
  body[class*="ch-route-community"] .ch-theme-container--community,
  body.ch-route-community .ch-theme-community-shell,
  body[class*="ch-route-community"] .ch-theme-community-shell {
    padding-top: 4px !important;
  }
}


/* =========================================================
   v0.2.22: Social layout standard pass
   - Equal left/right widget distance from timeline.
   - Restore X-style widget-column sticky behavior.
   - Uniform social page header/top rhythm.
   Theme-only. Core plugin untouched.
   ========================================================= */

/* One shared social-page vertical rhythm. Users should see content quickly. */
body.ch-route-community .ch-theme-main,
body[class*="ch-route-community"] .ch-theme-main,
body.ch-route-community .ch-theme-community-main,
body[class*="ch-route-community"] .ch-theme-community-main {
  padding-top: 8px !important;
}

body.ch-route-community .ch-theme-container--community,
body[class*="ch-route-community"] .ch-theme-container--community,
body.ch-route-community .ch-theme-community-shell,
body[class*="ch-route-community"] .ch-theme-community-shell {
  padding-top: 8px !important;
  margin-top: 0 !important;
}

body.ch-route-community .ch-theme-community-content-wrap > :first-child,
body[class*="ch-route-community"] .ch-theme-community-content-wrap > :first-child,
body.ch-route-community .ch-composer:first-child,
body[class*="ch-route-community"] .ch-composer:first-child,
body.ch-route-community .ch-feed:first-child,
body[class*="ch-route-community"] .ch-feed:first-child,
body.ch-route-community .ch-bookmarks-page,
body[class*="ch-route-community"] .ch-bookmarks-page,
body.ch-route-community .ch-notifications-page,
body[class*="ch-route-community"] .ch-notifications-page,
body.ch-route-community .ch-members-directory-page,
body[class*="ch-route-community"] .ch-members-directory-page,
body.ch-route-community .ch-profile-page,
body[class*="ch-route-community"] .ch-profile-page {
  margin-top: 0 !important;
}

/* Shared header language for social pages: mixture of clean activity header + nicer member header. */
body[class*="ch-route-community"] .ch-bookmarks-header,
body[class*="ch-route-community"] .ch-notifications-header,
body[class*="ch-route-community"] .ch-members-directory-header,
body[class*="ch-route-community"] .ch-profile-section-header,
body[class*="ch-route-community"] .ch-profile-section-title,
body[class*="ch-route-community"] .ch-section-header,
body[class*="ch-route-community"] .ch-section-title {
  margin: 0 0 14px !important;
  padding: 16px 18px !important;
  border-radius: 20px !important;
  border: 1px solid var(--ch-theme-border) !important;
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--ch-theme-blue) 12%, transparent), transparent 22rem),
    var(--ch-theme-surface) !important;
  color: var(--ch-theme-text) !important;
  box-shadow: 0 14px 36px rgba(16, 24, 40, 0.065) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-bookmarks-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-members-directory-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-profile-section-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-profile-section-title,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-section-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-section-title {
  background:
    radial-gradient(circle at top left, rgba(0,128,255,.14), transparent 22rem),
    var(--ch-theme-surface) !important;
  border-color: var(--ch-theme-border) !important;
  color: var(--ch-theme-text) !important;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.22) !important;
}

body[class*="ch-route-community"] .ch-bookmarks-header h1,
body[class*="ch-route-community"] .ch-bookmarks-header h2,
body[class*="ch-route-community"] .ch-notifications-header h1,
body[class*="ch-route-community"] .ch-notifications-header h2,
body[class*="ch-route-community"] .ch-members-directory-header h1,
body[class*="ch-route-community"] .ch-members-directory-header h2,
body[class*="ch-route-community"] .ch-profile-section-header h1,
body[class*="ch-route-community"] .ch-profile-section-header h2,
body[class*="ch-route-community"] .ch-profile-section-title h1,
body[class*="ch-route-community"] .ch-profile-section-title h2,
body[class*="ch-route-community"] .ch-section-header h1,
body[class*="ch-route-community"] .ch-section-header h2,
body[class*="ch-route-community"] .ch-section-title h1,
body[class*="ch-route-community"] .ch-section-title h2 {
  margin: 0 !important;
  color: var(--ch-theme-text) !important;
  letter-spacing: -0.035em !important;
  line-height: 1.06 !important;
}

body[class*="ch-route-community"] .ch-bookmarks-header p,
body[class*="ch-route-community"] .ch-notifications-header p,
body[class*="ch-route-community"] .ch-members-directory-header p {
  margin: 6px 0 0 !important;
  color: var(--ch-theme-muted) !important;
  font-weight: 750 !important;
}

/* Desktop social grid: exact equal geometry. The same fixed gap exists on both sides of the timeline. */
@media (min-width: 1180px) {
  body.ch-route-community .ch-theme-container--community,
  body[class*="ch-route-community"] .ch-theme-container--community {
    --ch-social-stack-width: 820px;
    --ch-social-widget-width: 340px;
    --ch-social-widget-gap: 6px;
    width: min(100% - 12px, calc((var(--ch-social-widget-width) * 2) + var(--ch-social-stack-width) + (var(--ch-social-widget-gap) * 2))) !important;
    max-width: calc((var(--ch-social-widget-width) * 2) + var(--ch-social-stack-width) + (var(--ch-social-widget-gap) * 2)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.ch-route-community .ch-theme-community-shell,
  body[class*="ch-route-community"] .ch-theme-community-shell {
    display: grid !important;
    align-items: start !important;
    justify-content: center !important;
    column-gap: var(--ch-social-widget-gap) !important;
    gap: var(--ch-social-widget-gap) !important;
    row-gap: 10px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-both,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both {
    grid-template-columns: var(--ch-social-widget-width) var(--ch-social-stack-width) var(--ch-social-widget-width) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-left {
    grid-template-columns: var(--ch-social-widget-width) var(--ch-social-stack-width) !important;
    max-width: calc(var(--ch-social-widget-width) + var(--ch-social-widget-gap) + var(--ch-social-stack-width)) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-right {
    grid-template-columns: var(--ch-social-stack-width) var(--ch-social-widget-width) !important;
    max-width: calc(var(--ch-social-stack-width) + var(--ch-social-widget-gap) + var(--ch-social-widget-width)) !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-sidebar--left,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-sidebar--left,
  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-left > .ch-theme-sidebar--left,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-left > .ch-theme-sidebar--left {
    grid-column: 1 !important;
    justify-self: stretch !important;
    width: var(--ch-social-widget-width) !important;
    max-width: var(--ch-social-widget-width) !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-community-content-wrap,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-community-content-wrap,
  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-left > .ch-theme-community-content-wrap,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-left > .ch-theme-community-content-wrap,
  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-right > .ch-theme-community-content-wrap,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-right > .ch-theme-community-content-wrap {
    grid-column: auto !important;
    justify-self: stretch !important;
    width: var(--ch-social-stack-width) !important;
    max-width: var(--ch-social-stack-width) !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-sidebar--right,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-sidebar--right,
  body.ch-route-community .ch-theme-community-shell.ch-theme-layout--sidebar-right > .ch-theme-sidebar--right,
  body[class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-right > .ch-theme-sidebar--right {
    grid-column: auto !important;
    justify-self: stretch !important;
    width: var(--ch-social-widget-width) !important;
    max-width: var(--ch-social-widget-width) !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  /* Remove invisible wrapper spacing that can make the left/right columns look uneven. */
  body.ch-route-community .ch-theme-community-sidebar,
  body[class*="ch-route-community"] .ch-theme-community-sidebar {
    box-sizing: border-box !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.ch-route-community .ch-theme-community-sidebar > .ch-theme-widget,
  body.ch-route-community .ch-theme-community-sidebar > .widget,
  body.ch-route-community .ch-theme-community-sidebar > section,
  body[class*="ch-route-community"] .ch-theme-community-sidebar > .ch-theme-widget,
  body[class*="ch-route-community"] .ch-theme-community-sidebar > .widget,
  body[class*="ch-route-community"] .ch-theme-community-sidebar > section {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.ch-route-community .ch-composer,
  body.ch-route-community .ch-feed,
  body.ch-route-community .ch-single-post,
  body.ch-route-community .ch-feed .ch-activity-card,
  body[class*="ch-route-community"] .ch-composer,
  body[class*="ch-route-community"] .ch-feed,
  body[class*="ch-route-community"] .ch-single-post,
  body[class*="ch-route-community"] .ch-feed .ch-activity-card {
    width: 100% !important;
    max-width: var(--ch-social-stack-width) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Restore the v0.2.17 X-style behavior explicitly after later spacing rules. */
  body.ch-route-community .ch-theme-community-sidebar,
  body[class*="ch-route-community"] .ch-theme-community-sidebar {
    position: sticky !important;
    top: var(--ch-community-sidebar-sticky-top, 88px) !important;
    align-self: start !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
  }

  body.admin-bar.ch-route-community .ch-theme-community-sidebar,
  body.admin-bar[class*="ch-route-community"] .ch-theme-community-sidebar {
    top: var(--ch-community-sidebar-sticky-top, 120px) !important;
  }
}

@media (max-width: 781px) {
  body.ch-route-community .ch-theme-main,
  body[class*="ch-route-community"] .ch-theme-main,
  body.ch-route-community .ch-theme-community-main,
  body[class*="ch-route-community"] .ch-theme-community-main,
  body.ch-route-community .ch-theme-container--community,
  body[class*="ch-route-community"] .ch-theme-container--community,
  body.ch-route-community .ch-theme-community-shell,
  body[class*="ch-route-community"] .ch-theme-community-shell {
    padding-top: 5px !important;
  }

  body[class*="ch-route-community"] .ch-bookmarks-header,
  body[class*="ch-route-community"] .ch-notifications-header,
  body[class*="ch-route-community"] .ch-members-directory-header,
  body[class*="ch-route-community"] .ch-profile-section-header,
  body[class*="ch-route-community"] .ch-profile-section-title,
  body[class*="ch-route-community"] .ch-section-header,
  body[class*="ch-route-community"] .ch-section-title {
    padding: 14px !important;
    border-radius: 18px !important;
    margin-bottom: 12px !important;
  }
}

/* =========================================================
   v0.2.23: Restore X-style widget column scroll behavior
   - Keeps v0.2.22 equal column geometry.
   - No independent sidebar scrollbars.
   - Long widget columns reveal their bottom with normal page scroll,
     then stick/follow as the timeline keeps loading.
   ========================================================= */
@media (min-width: 1180px) {
  body.ch-route-community .ch-theme-community-shell > .ch-theme-sidebar,
  body[class*="ch-route-community"] .ch-theme-community-shell > .ch-theme-sidebar,
  body.ch-route-community .ch-theme-community-sidebar,
  body[class*="ch-route-community"] .ch-theme-community-sidebar {
    position: sticky !important;
    top: var(--ch-community-sidebar-sticky-top, 88px) !important;
    align-self: start !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    -webkit-overflow-scrolling: auto !important;
  }

  body.admin-bar.ch-route-community .ch-theme-community-shell > .ch-theme-sidebar,
  body.admin-bar[class*="ch-route-community"] .ch-theme-community-shell > .ch-theme-sidebar,
  body.admin-bar.ch-route-community .ch-theme-community-sidebar,
  body.admin-bar[class*="ch-route-community"] .ch-theme-community-sidebar {
    top: var(--ch-community-sidebar-sticky-top, 120px) !important;
  }

  body.ch-route-community .ch-sidebar-feed-guard,
  body[class*="ch-route-community"] .ch-sidebar-feed-guard {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
  }
}

/* =========================================================
   v0.2.24: Uniform social page header standard
   - Community, Members, Notifications, Saved use same compact hero rhythm.
   - Mixes the clean Activity feel with the nicer Members card feel.
   - Reduces top dead space consistently across social routes.
   - Does not change v0.2.23 X-style widget column behavior.
   Theme-only. Core plugin untouched.
   ========================================================= */

/* Shared social route top rhythm: same starting point for all social screens. */
body.ch-route-community .ch-theme-main,
body.ch-route-members .ch-theme-main,
body.ch-route-notifications .ch-theme-main,
body.ch-route-saved .ch-theme-main,
body[class*="ch-route-community"] .ch-theme-main,
body[class*="ch-route-members"] .ch-theme-main,
body[class*="ch-route-notifications"] .ch-theme-main,
body[class*="ch-route-saved"] .ch-theme-main,
body.ch-route-community .ch-theme-community-main,
body.ch-route-members .ch-theme-community-main,
body.ch-route-notifications .ch-theme-community-main,
body.ch-route-saved .ch-theme-community-main,
body[class*="ch-route-community"] .ch-theme-community-main,
body[class*="ch-route-members"] .ch-theme-community-main,
body[class*="ch-route-notifications"] .ch-theme-community-main,
body[class*="ch-route-saved"] .ch-theme-community-main {
  padding-top: clamp(8px, 1.2vw, 14px) !important;
}

body.ch-route-community .ch-theme-container--community,
body.ch-route-members .ch-theme-container--community,
body.ch-route-notifications .ch-theme-container--community,
body.ch-route-saved .ch-theme-container--community,
body[class*="ch-route-community"] .ch-theme-container--community,
body[class*="ch-route-members"] .ch-theme-container--community,
body[class*="ch-route-notifications"] .ch-theme-container--community,
body[class*="ch-route-saved"] .ch-theme-container--community,
body.ch-route-community .ch-theme-community-shell,
body.ch-route-members .ch-theme-community-shell,
body.ch-route-notifications .ch-theme-community-shell,
body.ch-route-saved .ch-theme-community-shell,
body[class*="ch-route-community"] .ch-theme-community-shell,
body[class*="ch-route-members"] .ch-theme-community-shell,
body[class*="ch-route-notifications"] .ch-theme-community-shell,
body[class*="ch-route-saved"] .ch-theme-community-shell {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.ch-route-community .ch-theme-community-content-wrap > :first-child,
body.ch-route-members .ch-theme-community-content-wrap > :first-child,
body.ch-route-notifications .ch-theme-community-content-wrap > :first-child,
body.ch-route-saved .ch-theme-community-content-wrap > :first-child,
body[class*="ch-route-community"] .ch-theme-community-content-wrap > :first-child,
body[class*="ch-route-members"] .ch-theme-community-content-wrap > :first-child,
body[class*="ch-route-notifications"] .ch-theme-community-content-wrap > :first-child,
body[class*="ch-route-saved"] .ch-theme-community-content-wrap > :first-child {
  margin-top: 0 !important;
}

/* The four social headers should feel like one product family. */
body.ch-theme .ch-community-feed-header,
body.ch-theme .ch-community-header,
body.ch-theme .ch-feed-header,
body.ch-theme .ch-member-directory-header,
body.ch-theme .ch-members-directory-header,
body.ch-theme .ch-members-header,
body.ch-theme .ch-notifications-header,
body.ch-theme .ch-bookmarks-header,
body.ch-theme .ch-saved-header,
body.ch-theme .ch-page-header--community,
body.ch-theme .ch-social-page-header,
body.ch-route-community .ch-theme-page-header,
body.ch-route-members .ch-theme-page-header,
body.ch-route-notifications .ch-theme-page-header,
body.ch-route-saved .ch-theme-page-header,
body[class*="ch-route-community"] .ch-theme-page-header,
body[class*="ch-route-members"] .ch-theme-page-header,
body[class*="ch-route-notifications"] .ch-theme-page-header,
body[class*="ch-route-saved"] .ch-theme-page-header {
  position: relative !important;
  overflow: hidden !important;
  width: 100% !important;
  margin: 0 0 12px !important;
  padding: clamp(14px, 1.7vw, 18px) clamp(16px, 2vw, 22px) !important;
  border-radius: 20px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 88%, transparent) !important;
  background:
    radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--ch-theme-blue) 13%, transparent), transparent 18rem),
    linear-gradient(135deg, color-mix(in srgb, var(--ch-theme-surface) 96%, var(--ch-theme-blue)), var(--ch-theme-surface)) !important;
  box-shadow: 0 12px 30px rgba(16, 24, 40, 0.055) !important;
  color: var(--ch-theme-text) !important;
}

/* Keep the Activity header clean: no giant hero, just polished social-card energy. */
body.ch-theme .ch-community-feed-header::after,
body.ch-theme .ch-community-header::after,
body.ch-theme .ch-feed-header::after,
body.ch-theme .ch-member-directory-header::after,
body.ch-theme .ch-members-directory-header::after,
body.ch-theme .ch-members-header::after,
body.ch-theme .ch-notifications-header::after,
body.ch-theme .ch-bookmarks-header::after,
body.ch-theme .ch-saved-header::after,
body.ch-theme .ch-page-header--community::after,
body.ch-theme .ch-social-page-header::after,
body.ch-route-community .ch-theme-page-header::after,
body.ch-route-members .ch-theme-page-header::after,
body.ch-route-notifications .ch-theme-page-header::after,
body.ch-route-saved .ch-theme-page-header::after,
body[class*="ch-route-community"] .ch-theme-page-header::after,
body[class*="ch-route-members"] .ch-theme-page-header::after,
body[class*="ch-route-notifications"] .ch-theme-page-header::after,
body[class*="ch-route-saved"] .ch-theme-page-header::after {
  content: "" !important;
  position: absolute !important;
  right: -70px !important;
  top: -85px !important;
  width: 190px !important;
  height: 190px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, color-mix(in srgb, var(--ch-theme-blue) 15%, transparent), transparent 68%) !important;
  pointer-events: none !important;
}

body.ch-theme .ch-community-feed-header h1,
body.ch-theme .ch-community-feed-header h2,
body.ch-theme .ch-community-header h1,
body.ch-theme .ch-community-header h2,
body.ch-theme .ch-feed-header h1,
body.ch-theme .ch-feed-header h2,
body.ch-theme .ch-member-directory-header h1,
body.ch-theme .ch-member-directory-header h2,
body.ch-theme .ch-members-directory-header h1,
body.ch-theme .ch-members-directory-header h2,
body.ch-theme .ch-members-header h1,
body.ch-theme .ch-members-header h2,
body.ch-theme .ch-notifications-header h1,
body.ch-theme .ch-notifications-header h2,
body.ch-theme .ch-bookmarks-header h1,
body.ch-theme .ch-bookmarks-header h2,
body.ch-theme .ch-saved-header h1,
body.ch-theme .ch-saved-header h2,
body.ch-theme .ch-page-header--community h1,
body.ch-theme .ch-page-header--community h2,
body.ch-theme .ch-social-page-header h1,
body.ch-theme .ch-social-page-header h2,
body.ch-route-community .ch-theme-page-header h1,
body.ch-route-community .ch-theme-page-header h2,
body.ch-route-members .ch-theme-page-header h1,
body.ch-route-members .ch-theme-page-header h2,
body.ch-route-notifications .ch-theme-page-header h1,
body.ch-route-notifications .ch-theme-page-header h2,
body.ch-route-saved .ch-theme-page-header h1,
body.ch-route-saved .ch-theme-page-header h2,
body[class*="ch-route-community"] .ch-theme-page-header h1,
body[class*="ch-route-community"] .ch-theme-page-header h2,
body[class*="ch-route-members"] .ch-theme-page-header h1,
body[class*="ch-route-members"] .ch-theme-page-header h2,
body[class*="ch-route-notifications"] .ch-theme-page-header h1,
body[class*="ch-route-notifications"] .ch-theme-page-header h2,
body[class*="ch-route-saved"] .ch-theme-page-header h1,
body[class*="ch-route-saved"] .ch-theme-page-header h2 {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
  color: var(--ch-theme-text) !important;
  font-size: clamp(1.42rem, 2.1vw, 2rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.045em !important;
  font-weight: 950 !important;
}

body.ch-theme .ch-community-feed-header p,
body.ch-theme .ch-community-header p,
body.ch-theme .ch-feed-header p,
body.ch-theme .ch-member-directory-header p,
body.ch-theme .ch-members-directory-header p,
body.ch-theme .ch-members-header p,
body.ch-theme .ch-notifications-header p,
body.ch-theme .ch-bookmarks-header p,
body.ch-theme .ch-saved-header p,
body.ch-theme .ch-page-header--community p,
body.ch-theme .ch-social-page-header p,
body.ch-route-community .ch-theme-page-header p,
body.ch-route-members .ch-theme-page-header p,
body.ch-route-notifications .ch-theme-page-header p,
body.ch-route-saved .ch-theme-page-header p,
body[class*="ch-route-community"] .ch-theme-page-header p,
body[class*="ch-route-members"] .ch-theme-page-header p,
body[class*="ch-route-notifications"] .ch-theme-page-header p,
body[class*="ch-route-saved"] .ch-theme-page-header p,
body.ch-theme .ch-notifications-description,
body.ch-theme .ch-bookmarks-description,
body.ch-theme .ch-members-description {
  position: relative !important;
  z-index: 1 !important;
  max-width: 720px !important;
  margin: 5px 0 0 !important;
  color: var(--ch-theme-muted) !important;
  font-size: .94rem !important;
  line-height: 1.42 !important;
  font-weight: 750 !important;
}

/* Header actions/search inside social headers should be compact and aligned, not add vertical dead space. */
body.ch-theme .ch-community-feed-header .ch-actions,
body.ch-theme .ch-community-header .ch-actions,
body.ch-theme .ch-feed-header .ch-actions,
body.ch-theme .ch-member-directory-header .ch-actions,
body.ch-theme .ch-members-directory-header .ch-actions,
body.ch-theme .ch-members-header .ch-actions,
body.ch-theme .ch-notifications-header .ch-actions,
body.ch-theme .ch-bookmarks-header .ch-actions,
body.ch-theme .ch-saved-header .ch-actions,
body.ch-theme .ch-social-page-header .ch-actions,
body.ch-theme .ch-notifications-header-actions,
body.ch-theme .ch-bookmarks-header-actions,
body.ch-theme .ch-members-header-actions {
  position: relative !important;
  z-index: 1 !important;
  margin-top: 10px !important;
  gap: 8px !important;
}

/* Dark mode: same social header system. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-community-feed-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-community-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-feed-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-member-directory-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-members-directory-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-members-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-page-header--community,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-social-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-members .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-notifications .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-community"] .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-members"] .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-notifications"] .ch-theme-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme[class*="ch-route-saved"] .ch-theme-page-header {
  background:
    radial-gradient(circle at 0% 0%, rgba(0, 128, 255, .16), transparent 18rem),
    linear-gradient(135deg, rgba(15, 27, 45, .96), var(--ch-theme-surface)) !important;
  border-color: var(--ch-theme-border) !important;
  color: var(--ch-theme-text) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24) !important;
}

/* Mobile keeps the same product language but gets users to content fast. */
@media (max-width: 781px) {
  body.ch-route-community .ch-theme-main,
  body.ch-route-members .ch-theme-main,
  body.ch-route-notifications .ch-theme-main,
  body.ch-route-saved .ch-theme-main,
  body[class*="ch-route-community"] .ch-theme-main,
  body[class*="ch-route-members"] .ch-theme-main,
  body[class*="ch-route-notifications"] .ch-theme-main,
  body[class*="ch-route-saved"] .ch-theme-main {
    padding-top: 6px !important;
  }

  body.ch-theme .ch-community-feed-header,
  body.ch-theme .ch-community-header,
  body.ch-theme .ch-feed-header,
  body.ch-theme .ch-member-directory-header,
  body.ch-theme .ch-members-directory-header,
  body.ch-theme .ch-members-header,
  body.ch-theme .ch-notifications-header,
  body.ch-theme .ch-bookmarks-header,
  body.ch-theme .ch-saved-header,
  body.ch-theme .ch-page-header--community,
  body.ch-theme .ch-social-page-header,
  body.ch-route-community .ch-theme-page-header,
  body.ch-route-members .ch-theme-page-header,
  body.ch-route-notifications .ch-theme-page-header,
  body.ch-route-saved .ch-theme-page-header,
  body[class*="ch-route-community"] .ch-theme-page-header,
  body[class*="ch-route-members"] .ch-theme-page-header,
  body[class*="ch-route-notifications"] .ch-theme-page-header,
  body[class*="ch-route-saved"] .ch-theme-page-header {
    margin-bottom: 10px !important;
    padding: 13px 14px !important;
    border-radius: 18px !important;
  }

  body.ch-theme .ch-community-feed-header h1,
  body.ch-theme .ch-community-feed-header h2,
  body.ch-theme .ch-community-header h1,
  body.ch-theme .ch-community-header h2,
  body.ch-theme .ch-feed-header h1,
  body.ch-theme .ch-feed-header h2,
  body.ch-theme .ch-member-directory-header h1,
  body.ch-theme .ch-member-directory-header h2,
  body.ch-theme .ch-members-directory-header h1,
  body.ch-theme .ch-members-directory-header h2,
  body.ch-theme .ch-members-header h1,
  body.ch-theme .ch-members-header h2,
  body.ch-theme .ch-notifications-header h1,
  body.ch-theme .ch-notifications-header h2,
  body.ch-theme .ch-bookmarks-header h1,
  body.ch-theme .ch-bookmarks-header h2,
  body.ch-theme .ch-saved-header h1,
  body.ch-theme .ch-saved-header h2,
  body.ch-theme .ch-page-header--community h1,
  body.ch-theme .ch-page-header--community h2,
  body.ch-theme .ch-social-page-header h1,
  body.ch-theme .ch-social-page-header h2,
  body.ch-route-community .ch-theme-page-header h1,
  body.ch-route-members .ch-theme-page-header h1,
  body.ch-route-notifications .ch-theme-page-header h1,
  body.ch-route-saved .ch-theme-page-header h1,
  body[class*="ch-route-community"] .ch-theme-page-header h1,
  body[class*="ch-route-members"] .ch-theme-page-header h1,
  body[class*="ch-route-notifications"] .ch-theme-page-header h1,
  body[class*="ch-route-saved"] .ch-theme-page-header h1 {
    font-size: clamp(1.22rem, 6vw, 1.55rem) !important;
  }
}


/* =========================================================
   v0.2.25: Social header standard lock + exact header classes
   - Preserves approved desktop widget column geometry/behavior.
   - Fixes Community/Members/Notifications/Saved headers using exact markup classes.
   - Makes header nav buttons clean, compact, and consistent.
   ========================================================= */

body.ch-theme.ch-route-community {
  --ch-social-header-gap-top: 8px;
  --ch-social-header-gap-bottom: 12px;
  --ch-social-header-radius: 18px;
  --ch-social-header-pad-y: 14px;
  --ch-social-header-pad-x: 16px;
}

/* Get social pages to content fast without smashing into the sticky site header. */
body.ch-theme.ch-route-community .ch-theme-main {
  padding-top: var(--ch-social-header-gap-top) !important;
}

body.ch-theme.ch-route-community .ch-theme-community-shell,
body.ch-theme.ch-route-community .ch-theme-community-content-wrap,
body.ch-theme.ch-route-community .ch-community-feed-page,
body.ch-theme.ch-route-community .ch-member-directory,
body.ch-theme.ch-route-community .ch-notifications-page,
body.ch-theme.ch-route-community .ch-bookmarks-page,
body.ch-theme.ch-route-community .ch-saved-page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Exact current headers for the four main social pages. */
body.ch-theme.ch-route-community .ch-community-feed-header,
body.ch-theme.ch-route-community .ch-member-directory-hero,
body.ch-theme.ch-route-community .ch-notifications-header,
body.ch-theme.ch-route-community .ch-bookmarks-header {
  box-sizing: border-box !important;
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 var(--ch-social-header-gap-bottom) 0 !important;
  padding: var(--ch-social-header-pad-y) var(--ch-social-header-pad-x) !important;
  border-radius: var(--ch-social-header-radius) !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 82%, transparent) !important;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--ch-theme-blue) 10%, transparent), transparent 15rem),
    linear-gradient(135deg, color-mix(in srgb, var(--ch-theme-blue) 5%, var(--ch-theme-surface)), var(--ch-theme-surface)) !important;
  box-shadow: 0 10px 26px rgba(16, 24, 40, 0.055) !important;
  color: var(--ch-theme-text) !important;
}

/* Remove older oversized decoration from prior header experiments. */
body.ch-theme.ch-route-community .ch-community-feed-header::after,
body.ch-theme.ch-route-community .ch-member-directory-hero::after,
body.ch-theme.ch-route-community .ch-notifications-header::after,
body.ch-theme.ch-route-community .ch-bookmarks-header::after {
  content: "" !important;
  position: absolute !important;
  inset: auto -52px -82px auto !important;
  width: 150px !important;
  height: 150px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, color-mix(in srgb, var(--ch-theme-blue) 12%, transparent), transparent 68%) !important;
  pointer-events: none !important;
  z-index: -1 !important;
}

body.ch-theme.ch-route-community .ch-community-feed-header > div:first-child,
body.ch-theme.ch-route-community .ch-member-directory-hero > div:first-child,
body.ch-theme.ch-route-community .ch-notifications-header > div:first-child,
body.ch-theme.ch-route-community .ch-bookmarks-header > div:first-child {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

body.ch-theme.ch-route-community .ch-community-feed-header h1,
body.ch-theme.ch-route-community .ch-community-feed-header h2,
body.ch-theme.ch-route-community .ch-member-directory-hero h1,
body.ch-theme.ch-route-community .ch-member-directory-hero h2,
body.ch-theme.ch-route-community .ch-notifications-header h1,
body.ch-theme.ch-route-community .ch-notifications-header h2,
body.ch-theme.ch-route-community .ch-bookmarks-header h1,
body.ch-theme.ch-route-community .ch-bookmarks-header h2 {
  margin: 0 !important;
  color: var(--ch-theme-text) !important;
  font-size: clamp(1.34rem, 2vw, 1.9rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.045em !important;
  font-weight: 950 !important;
}

body.ch-theme.ch-route-community .ch-community-feed-header p,
body.ch-theme.ch-route-community .ch-member-directory-hero p,
body.ch-theme.ch-route-community .ch-notifications-header p,
body.ch-theme.ch-route-community .ch-bookmarks-header p,
body.ch-theme.ch-route-community .ch-page-subtitle {
  margin: 5px 0 0 !important;
  color: var(--ch-theme-muted) !important;
  font-size: .92rem !important;
  line-height: 1.36 !important;
  font-weight: 750 !important;
}

body.ch-theme.ch-route-community .ch-page-eyebrow,
body.ch-theme.ch-route-community .ch-member-directory-kicker {
  display: inline-flex !important;
  width: fit-content !important;
  margin: 0 0 6px 0 !important;
  padding: 4px 8px !important;
  border-radius: 999px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 18%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-blue) 8%, transparent) !important;
  color: var(--ch-theme-blue-dark) !important;
  font-size: .72rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
}

/* Header right-side blocks: keep them useful, not oversized. */
body.ch-theme.ch-route-community .ch-member-directory-side,
body.ch-theme.ch-route-community .ch-page-actions,
body.ch-theme.ch-route-community .ch-notifications-actions,
body.ch-theme.ch-route-community .ch-bookmarks-count {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 9px !important;
  margin: 0 !important;
}

body.ch-theme.ch-route-community .ch-member-directory-count,
body.ch-theme.ch-route-community .ch-bookmarks-count {
  min-width: 86px !important;
  padding: 8px 10px !important;
  border-radius: 14px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 85%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-surface-soft) 70%, var(--ch-theme-surface)) !important;
  box-shadow: none !important;
  text-align: center !important;
}

body.ch-theme.ch-route-community .ch-member-directory-count strong,
body.ch-theme.ch-route-community .ch-bookmarks-count span {
  display: block !important;
  color: var(--ch-theme-text) !important;
  font-size: 1.06rem !important;
  font-weight: 950 !important;
  line-height: 1.05 !important;
}

body.ch-theme.ch-route-community .ch-member-directory-count span,
body.ch-theme.ch-route-community .ch-bookmarks-count small {
  display: block !important;
  margin-top: 2px !important;
  color: var(--ch-theme-muted) !important;
  font-size: .7rem !important;
  font-weight: 850 !important;
  line-height: 1.1 !important;
}

/* Header nav: compact polished app tabs, not giant CTA buttons. */
body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-page-nav,
body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-page-nav,
body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-page-nav,
body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-page-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-nav-button,
body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-nav-button,
body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-nav-button,
body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-nav-button,
body.ch-theme.ch-route-community .ch-notifications-header .ch-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 32px !important;
  width: auto !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 78%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-surface-soft) 78%, var(--ch-theme-surface)) !important;
  background-image: none !important;
  color: color-mix(in srgb, var(--ch-theme-text) 76%, var(--ch-theme-muted)) !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-nav-button:hover,
body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-nav-button:hover,
body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-nav-button:hover,
body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-nav-button:hover,
body.ch-theme.ch-route-community .ch-notifications-header .ch-button:hover {
  background: color-mix(in srgb, var(--ch-theme-blue) 9%, var(--ch-theme-surface)) !important;
  border-color: color-mix(in srgb, var(--ch-theme-blue) 30%, var(--ch-theme-border)) !important;
  color: var(--ch-theme-blue-dark) !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
  text-decoration: none !important;
}

body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-nav-button.is-active,
body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-nav-button.is-active,
body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-nav-button.is-active,
body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-nav-button.is-active {
  background: color-mix(in srgb, var(--ch-theme-blue) 14%, var(--ch-theme-surface)) !important;
  border-color: color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border)) !important;
  color: var(--ch-theme-blue-dark) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ch-theme-blue) 10%, transparent) !important;
}

/* Dark mode support for the standard social headers. */
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-community-feed-header,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-member-directory-hero,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-bookmarks-header {
  background:
    radial-gradient(circle at 100% 0%, rgba(0, 128, 255, .14), transparent 15rem),
    linear-gradient(135deg, rgba(15, 27, 45, .96), var(--ch-theme-surface)) !important;
  border-color: var(--ch-theme-border) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .22) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-page-eyebrow,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-member-directory-kicker {
  color: #93c5fd !important;
  background: rgba(96, 165, 250, .11) !important;
  border-color: rgba(96, 165, 250, .2) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-member-directory-count,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-bookmarks-count,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-nav-button,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-nav-button,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-nav-button,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-nav-button,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-notifications-header .ch-button {
  background: rgba(255, 255, 255, .055) !important;
  border-color: var(--ch-theme-border) !important;
  color: #dbeafe !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-nav-button.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-nav-button.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-nav-button.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-nav-button.is-active {
  background: rgba(59, 130, 246, .18) !important;
  border-color: rgba(96, 165, 250, .42) !important;
  color: #ffffff !important;
}

@media (max-width: 781px) {
  body.ch-theme.ch-route-community {
    --ch-social-header-gap-top: 5px;
    --ch-social-header-gap-bottom: 10px;
    --ch-social-header-pad-y: 12px;
    --ch-social-header-pad-x: 13px;
    --ch-social-header-radius: 17px;
  }

  body.ch-theme.ch-route-community .ch-community-feed-header,
  body.ch-theme.ch-route-community .ch-member-directory-hero,
  body.ch-theme.ch-route-community .ch-notifications-header,
  body.ch-theme.ch-route-community .ch-bookmarks-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 10px !important;
  }

  body.ch-theme.ch-route-community .ch-member-directory-side,
  body.ch-theme.ch-route-community .ch-page-actions,
  body.ch-theme.ch-route-community .ch-notifications-actions,
  body.ch-theme.ch-route-community .ch-bookmarks-count {
    justify-content: flex-start !important;
    width: 100% !important;
    flex-wrap: wrap !important;
  }

  body.ch-theme.ch-route-community .ch-community-feed-header .ch-hub-page-nav,
  body.ch-theme.ch-route-community .ch-member-directory-hero .ch-hub-page-nav,
  body.ch-theme.ch-route-community .ch-notifications-header .ch-hub-page-nav,
  body.ch-theme.ch-route-community .ch-bookmarks-header .ch-hub-page-nav {
    justify-content: flex-start !important;
  }

  body.ch-theme.ch-route-community .ch-community-feed-header h1,
  body.ch-theme.ch-route-community .ch-member-directory-hero h1,
  body.ch-theme.ch-route-community .ch-notifications-header h1,
  body.ch-theme.ch-route-community .ch-bookmarks-header h1 {
    font-size: clamp(1.2rem, 6vw, 1.52rem) !important;
  }
}

/* =========================================================
   v0.2.26: Saved Posts header alignment
   - Preserves the approved v0.2.23/v0.2.24 desktop widget column standard.
   - Makes the Saved Posts header use the same header/nav structure visually
     as Community, Members, and Notifications.
   ========================================================= */

body.ch-theme.ch-route-community .ch-bookmarks-page,
body.ch-theme.ch-route-community .ch-saved-page,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-page,
body.ch-theme .ch-theme-community-shell--saved .ch-saved-page {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.ch-theme.ch-route-community .ch-bookmarks-shell,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* The saved page used a separate top nav. Theme JS moves it into this header;
   these rules make the fallback and moved state look the same either way. */
body.ch-theme.ch-route-community .ch-bookmarks-header.ch-page-hero,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero {
  box-sizing: border-box !important;
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 var(--ch-social-header-gap-bottom, 12px) 0 !important;
  padding: var(--ch-social-header-pad-y, 14px) var(--ch-social-header-pad-x, 16px) !important;
  border-radius: var(--ch-social-header-radius, 18px) !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 82%, transparent) !important;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--ch-theme-blue) 10%, transparent), transparent 15rem),
    linear-gradient(135deg, color-mix(in srgb, var(--ch-theme-blue) 5%, var(--ch-theme-surface)), var(--ch-theme-surface)) !important;
  box-shadow: 0 10px 26px rgba(16, 24, 40, 0.055) !important;
  color: var(--ch-theme-text) !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero > div:first-child {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero h1,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero h2 {
  margin: 0 !important;
  color: var(--ch-theme-text) !important;
  font-size: clamp(1.34rem, 2vw, 1.9rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.045em !important;
  font-weight: 950 !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero p {
  margin: 6px 0 0 0 !important;
  max-width: 46rem !important;
  color: var(--ch-theme-muted) !important;
  font-size: .92rem !important;
  line-height: 1.36 !important;
  font-weight: 750 !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-page-eyebrow {
  display: inline-flex !important;
  width: fit-content !important;
  margin: 0 0 6px 0 !important;
  padding: 4px 8px !important;
  border-radius: 999px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 18%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-blue) 8%, transparent) !important;
  color: var(--ch-theme-blue-dark) !important;
  font-size: .72rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-actions {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 9px !important;
  margin: 0 !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-actions .ch-bookmarks-count {
  min-width: 86px !important;
  padding: 8px 10px !important;
  border-radius: 14px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 85%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-surface-soft) 70%, var(--ch-theme-surface)) !important;
  box-shadow: none !important;
  text-align: center !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-in-header {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-button,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-link {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 32px !important;
  width: auto !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 78%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-surface-soft) 78%, var(--ch-theme-surface)) !important;
  background-image: none !important;
  color: color-mix(in srgb, var(--ch-theme-text) 76%, var(--ch-theme-muted)) !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-button.is-active,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-link.is-active {
  background: color-mix(in srgb, var(--ch-theme-blue) 14%, var(--ch-theme-surface)) !important;
  border-color: color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border)) !important;
  color: var(--ch-theme-blue-dark) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ch-theme-blue) 10%, transparent) !important;
}

/* While JS is loading, keep the saved-only old nav from adding a different page rhythm. */
body.ch-theme .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) {
  margin: 0 0 10px 0 !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero {
  background:
    radial-gradient(circle at 100% 0%, rgba(0, 128, 255, .14), transparent 15rem),
    linear-gradient(135deg, rgba(15, 27, 45, .96), var(--ch-theme-surface)) !important;
  border-color: var(--ch-theme-border) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .22) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-page-eyebrow {
  color: #93c5fd !important;
  background: rgba(96, 165, 250, .11) !important;
  border-color: rgba(96, 165, 250, .2) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-actions .ch-bookmarks-count,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-button,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-link {
  background: rgba(255, 255, 255, .055) !important;
  border-color: var(--ch-theme-border) !important;
  color: #dbeafe !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-button.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav .ch-hub-nav-link.is-active {
  background: rgba(59, 130, 246, .18) !important;
  border-color: rgba(96, 165, 250, .42) !important;
  color: #ffffff !important;
}

@media (max-width: 781px) {
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
    padding: 12px 13px !important;
    border-radius: 17px !important;
  }

  body.ch-theme .ch-bookmarks-page .ch-bookmarks-actions {
    justify-content: flex-start !important;
    width: 100% !important;
    flex-wrap: wrap !important;
  }

  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-in-header {
    justify-content: flex-start !important;
  }

  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero h1 {
    font-size: clamp(1.2rem, 6vw, 1.52rem) !important;
  }
}

/* =========================================================
   v0.2.27: Saved Posts top-gap match
   - Header-only/top-rhythm correction for Saved Posts.
   - The approved desktop widget columns are intentionally untouched.
   ========================================================= */

/* Saved should start at the same vertical rhythm as Community/Members/Notifications. */
body.ch-theme .ch-theme-community-shell--saved,
body.ch-theme .ch-theme-community-shell--saved .ch-theme-community-content-wrap,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-page,
body.ch-theme .ch-theme-community-shell--saved .ch-saved-page,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell,
body.ch-theme.ch-route-saved .ch-theme-main,
body.ch-theme.ch-route-saved .ch-theme-community-main,
body.ch-theme.ch-route-saved .ch-theme-container--community,
body.ch-theme.ch-route-saved .ch-theme-community-shell,
body.ch-theme.ch-route-saved .ch-theme-community-content-wrap,
body.ch-theme.ch-route-saved .ch-bookmarks-page,
body.ch-theme.ch-route-saved .ch-saved-page,
body.ch-theme.ch-route-saved .ch-bookmarks-shell {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* The theme main gets the same small social-page breathing room, not a separate Saved offset. */
body.ch-theme:has(.ch-theme-community-shell--saved) .ch-theme-main,
body.ch-theme:has(.ch-theme-community-shell--saved) .ch-theme-community-main,
body.ch-theme.ch-route-saved .ch-theme-main,
body.ch-theme.ch-route-saved .ch-theme-community-main {
  padding-top: var(--ch-social-header-gap-top, 8px) !important;
}

/* Kill extra first-child offsets that only affected the saved/bookmarks template. */
body.ch-theme .ch-theme-community-shell--saved .ch-theme-community-content-wrap > :first-child,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-page:first-child,
body.ch-theme .ch-theme-community-shell--saved .ch-saved-page:first-child,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell:first-child,
body.ch-theme.ch-route-saved .ch-theme-community-content-wrap > :first-child,
body.ch-theme.ch-route-saved .ch-bookmarks-page:first-child,
body.ch-theme.ch-route-saved .ch-saved-page:first-child,
body.ch-theme.ch-route-saved .ch-bookmarks-shell:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Saved header itself should sit at the top of the content lane like the other social headers. */
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header,
body.ch-theme .ch-theme-community-shell--saved .ch-saved-header,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
body.ch-theme.ch-route-saved .ch-bookmarks-header,
body.ch-theme.ch-route-saved .ch-saved-header,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero {
  margin-top: 0 !important;
  margin-bottom: var(--ch-social-header-gap-bottom, 12px) !important;
}

/* If the saved nav is visible for a moment before JS moves it into the header, do not let it create top rhythm. */
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

@media (max-width: 781px) {
  body.ch-theme:has(.ch-theme-community-shell--saved) .ch-theme-main,
  body.ch-theme:has(.ch-theme-community-shell--saved) .ch-theme-community-main,
  body.ch-theme.ch-route-saved .ch-theme-main,
  body.ch-theme.ch-route-saved .ch-theme-community-main {
    padding-top: var(--ch-social-header-gap-top, 5px) !important;
  }

  body.ch-theme .ch-theme-community-shell--saved,
  body.ch-theme .ch-theme-community-shell--saved .ch-theme-community-content-wrap,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-page,
  body.ch-theme .ch-theme-community-shell--saved .ch-saved-page,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell,
  body.ch-theme.ch-route-saved .ch-theme-community-shell,
  body.ch-theme.ch-route-saved .ch-theme-community-content-wrap,
  body.ch-theme.ch-route-saved .ch-bookmarks-page,
  body.ch-theme.ch-route-saved .ch-saved-page,
  body.ch-theme.ch-route-saved .ch-bookmarks-shell {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

/* =========================================================
   v0.2.28: Social page header standard lock
   - Locks Community, Members, Notifications, and Saved into one
     shared top rhythm/header language.
   - Does not touch the approved desktop widget column standard.
   ========================================================= */

body.ch-theme {
  --ch-social-header-gap-top: 8px;
  --ch-social-header-gap-bottom: 12px;
  --ch-social-header-pad-y: 14px;
  --ch-social-header-pad-x: 16px;
  --ch-social-header-radius: 18px;
}

/* One social-page top rhythm across the current social screens. */
body.ch-theme.ch-route-community .ch-theme-main,
body.ch-theme.ch-route-community .ch-theme-community-main,
body.ch-theme.ch-route-members .ch-theme-main,
body.ch-theme.ch-route-members .ch-theme-community-main,
body.ch-theme.ch-route-notifications .ch-theme-main,
body.ch-theme.ch-route-notifications .ch-theme-community-main,
body.ch-theme.ch-route-saved .ch-theme-main,
body.ch-theme.ch-route-saved .ch-theme-community-main,
body.ch-theme:has(.ch-community-feed-header) .ch-theme-main,
body.ch-theme:has(.ch-member-directory-hero) .ch-theme-main,
body.ch-theme:has(.ch-notifications-header) .ch-theme-main,
body.ch-theme:has(.ch-bookmarks-header) .ch-theme-main {
  padding-top: var(--ch-social-header-gap-top) !important;
}

/* Remove page/template-specific extra top offsets before the first social header. */
body.ch-theme .ch-theme-community-content-wrap,
body.ch-theme .ch-theme-community-shell,
body.ch-theme .ch-community-feed-page,
body.ch-theme .ch-member-directory,
body.ch-theme .ch-notifications-page,
body.ch-theme .ch-bookmarks-page,
body.ch-theme .ch-bookmarks-shell,
body.ch-theme .ch-saved-page {
  margin-top: 0 !important;
}

body.ch-theme .ch-theme-community-content-wrap > .ch-community-feed-header:first-child,
body.ch-theme .ch-theme-community-content-wrap > .ch-member-directory-hero:first-child,
body.ch-theme .ch-theme-community-content-wrap > .ch-notifications-header:first-child,
body.ch-theme .ch-theme-community-content-wrap > .ch-bookmarks-header:first-child,
body.ch-theme .ch-community-feed-header:first-child,
body.ch-theme .ch-member-directory-hero:first-child,
body.ch-theme .ch-notifications-header:first-child,
body.ch-theme .ch-bookmarks-header:first-child {
  margin-top: 0 !important;
}

/* Shared social header card language. */
body.ch-theme .ch-community-feed-header,
body.ch-theme .ch-member-directory-hero,
body.ch-theme .ch-notifications-header,
body.ch-theme .ch-bookmarks-header.ch-page-hero {
  box-sizing: border-box !important;
  margin-top: 0 !important;
  margin-bottom: var(--ch-social-header-gap-bottom) !important;
  padding: var(--ch-social-header-pad-y) var(--ch-social-header-pad-x) !important;
  border-radius: var(--ch-social-header-radius) !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 82%, transparent) !important;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--ch-theme-blue) 9%, transparent), transparent 15rem),
    linear-gradient(135deg, color-mix(in srgb, var(--ch-theme-blue) 4%, var(--ch-theme-surface)), var(--ch-theme-surface)) !important;
  box-shadow: 0 10px 26px rgba(16, 24, 40, 0.05) !important;
}

body.ch-theme .ch-community-feed-header h1,
body.ch-theme .ch-member-directory-hero h1,
body.ch-theme .ch-notifications-header h1,
body.ch-theme .ch-bookmarks-header.ch-page-hero h1,
body.ch-theme .ch-bookmarks-header.ch-page-hero h2 {
  margin-top: 0 !important;
  line-height: 1.04 !important;
  letter-spacing: -0.04em !important;
}

/* Compact social header buttons/nav: polished, not glowy. */
body.ch-theme .ch-community-feed-header .ch-hub-nav-button,
body.ch-theme .ch-community-feed-header .ch-hub-nav-link,
body.ch-theme .ch-member-directory-hero .ch-hub-nav-button,
body.ch-theme .ch-member-directory-hero .ch-hub-nav-link,
body.ch-theme .ch-notifications-header .ch-hub-nav-button,
body.ch-theme .ch-notifications-header .ch-hub-nav-link,
body.ch-theme .ch-bookmarks-header .ch-hub-nav-button,
body.ch-theme .ch-bookmarks-header .ch-hub-nav-link,
body.ch-theme .ch-page-actions a,
body.ch-theme .ch-page-actions button,
body.ch-theme .ch-notifications-actions a,
body.ch-theme .ch-notifications-actions button {
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
  transform: none !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-community-feed-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-member-directory-hero,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header.ch-page-hero {
  background:
    radial-gradient(circle at 100% 0%, rgba(0, 128, 255, .13), transparent 15rem),
    linear-gradient(135deg, rgba(15, 27, 45, .96), var(--ch-theme-surface)) !important;
  border-color: var(--ch-theme-border) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2) !important;
}

@media (max-width: 781px) {
  body.ch-theme {
    --ch-social-header-gap-top: 5px;
    --ch-social-header-gap-bottom: 10px;
    --ch-social-header-pad-y: 12px;
    --ch-social-header-pad-x: 13px;
    --ch-social-header-radius: 17px;
  }

  body.ch-theme .ch-community-feed-header,
  body.ch-theme .ch-member-directory-hero,
  body.ch-theme .ch-notifications-header,
  body.ch-theme .ch-bookmarks-header.ch-page-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 10px !important;
  }
}


/* =========================================================
   v0.2.30: Saved Posts header no-snap fix
   - Prevents the Saved Posts nav/buttons from flashing above/on top of
     the header before theme.js moves them into the approved header actions.
   - Header-only fix. The approved desktop widget column standard is untouched.
   ========================================================= */

/* Hide only the pre-move Saved nav to prevent the visible flash/snap. */
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Once JS moves the nav into the header, show it normally with no transition jump. */
body.ch-theme .ch-bookmarks-page .ch-bookmarks-header .ch-bookmarks-nav-in-header,
body.ch-theme.ch-route-saved .ch-bookmarks-header .ch-bookmarks-nav-in-header,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header .ch-bookmarks-nav-in-header {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: none !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero {
  transition: none !important;
}

/* =========================================================
   v0.2.31: Saved Posts header no-layout-shift fix
   - The previous fix hid the Saved buttons until JS placed them, but the
     subtitle still shifted when the actions row appeared.
   - Reserve the Saved header actions space from first paint, then replace
     that reserved space with the real buttons after theme.js moves them.
   - Header-only fix. Locked widget columns are untouched.
   ========================================================= */

body.ch-theme .ch-bookmarks-header.ch-page-hero:not(.ch-bookmarks-header-ready)::after,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero:not(.ch-bookmarks-header-ready)::after,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero:not(.ch-bookmarks-header-ready)::after {
  content: "";
  display: block;
  width: 100%;
  min-height: 40px;
  margin-top: 10px;
  border-radius: 999px;
  visibility: hidden;
  pointer-events: none;
}

body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions {
  min-height: 40px;
  margin-top: 10px;
  transition: none !important;
}

body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions *,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions * {
  transition: none !important;
}

@media (min-width: 782px) {
  body.ch-theme .ch-bookmarks-header.ch-page-hero:not(.ch-bookmarks-header-ready)::after,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero:not(.ch-bookmarks-header-ready)::after,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero:not(.ch-bookmarks-header-ready)::after {
    min-height: 42px;
  }

  body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-page-actions.ch-bookmarks-actions {
    min-height: 42px;
  }
}


/* =========================================================
   v0.2.32: Saved Posts header zero-snap correction (superseded by v0.2.33)
   - The Saved Posts page was the only social page still using JS reparenting.
   - Reparenting caused the buttons/subtext to visibly snap after page load.
   - This keeps the controls in their original DOM position and visually aligns
     them with the header from first paint.
   - Approved desktop widget columns are intentionally untouched.
   ========================================================= */

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell,
body.ch-theme.ch-route-saved .ch-bookmarks-shell,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell {
  position: relative !important;
}

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero {
  display: block !important;
  min-height: 86px !important;
  padding-right: clamp(300px, 32vw, 430px) !important;
}

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero > div:first-child,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero > div:first-child,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero > div:first-child {
  max-width: 100% !important;
}

/* Keep the count visually in the header without moving it after paint. */
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-count-zero-move {
  position: absolute !important;
  top: 14px !important;
  right: 16px !important;
  z-index: 3 !important;
  min-width: 86px !important;
  margin: 0 !important;
}

/* Keep the Saved nav visually in the header from first paint. No reparenting. */
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav,
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move {
  position: absolute !important;
  top: 50px !important;
  right: 16px !important;
  z-index: 4 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  width: auto !important;
  max-width: min(330px, 42vw) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav a,
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav a,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav a,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 32px !important;
  width: auto !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 78%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-surface-soft) 78%, var(--ch-theme-surface)) !important;
  background-image: none !important;
  color: color-mix(in srgb, var(--ch-theme-text) 76%, var(--ch-theme-muted)) !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav a.is-active,
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav a.is-active,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav a.is-active,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a.is-active {
  background: color-mix(in srgb, var(--ch-theme-blue) 14%, var(--ch-theme-surface)) !important;
  border-color: color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border)) !important;
  color: var(--ch-theme-blue-dark) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ch-theme-blue) 10%, transparent) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav a,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a {
  background: rgba(255,255,255,.055) !important;
  border-color: var(--ch-theme-border) !important;
  color: #dbeafe !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a.is-active {
  background: rgba(59,130,246,.18) !important;
  border-color: rgba(96,165,250,.42) !important;
  color: #ffffff !important;
}

@media (max-width: 781px) {
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    padding-right: 13px !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-count-zero-move {
    position: static !important;
    width: fit-content !important;
    margin-top: 10px !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav,
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move {
    position: static !important;
    justify-content: flex-start !important;
    max-width: 100% !important;
    margin: 0 0 10px 0 !important;
  }
}


/* =========================================================
   v0.2.33: Saved Posts buttons visible / no missing controls
   - v0.2.32 proved the right direction: stop moving Saved nav after paint.
   - The older v0.2.30 hiding rule could still win on some installs, leaving
     Saved buttons invisible. This broad final override restores the buttons
     while keeping the no-reparent approach.
   - Header-only fix. Locked widget columns are untouched.
   ========================================================= */

body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav,
body.ch-theme .ch-saved-page .ch-bookmarks-nav,
body.ch-theme .ch-bookmarks-shell .ch-bookmarks-nav,
body.ch-theme.ch-route-saved .ch-bookmarks-nav,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  transition: none !important;
}

body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme .ch-saved-page .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme.ch-route-saved .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Zero-move desktop placement: visually part of the header, but not reparented by JS. */
@media (min-width: 782px) {
  body.ch-theme .ch-bookmarks-page,
  body.ch-theme .ch-saved-page,
  body.ch-theme.ch-route-saved .ch-bookmarks-page,
  body.ch-theme.ch-route-saved .ch-saved-page {
    position: relative !important;
  }

  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero {
    padding-right: clamp(300px, 32vw, 430px) !important;
    min-height: 86px !important;
  }

  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav,
  body.ch-theme.ch-route-saved .ch-bookmarks-nav,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav {
    position: absolute !important;
    top: 50px !important;
    right: 16px !important;
    z-index: 40 !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    width: auto !important;
    max-width: min(330px, 42vw) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }
}

@media (max-width: 781px) {
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav,
  body.ch-theme.ch-route-saved .ch-bookmarks-nav,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav {
    position: static !important;
    display: flex !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    max-width: 100% !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
}

/* =========================================================
   v0.2.34: Saved Posts buttons stable restore
   - v0.2.33 was still losing against the older high-specificity
     v0.2.30 hide rule on some installs.
   - This final override uses the same direct child selectors as the hide rule,
     appears later in the stylesheet, and restores the Saved nav without any
     JS reparenting/snap.
   - Header-only fix. Locked desktop widget columns are untouched.
   ========================================================= */

body.ch-theme .ch-bookmarks-page,
body.ch-theme .ch-saved-page,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell,
body.ch-theme .ch-saved-page .ch-bookmarks-shell,
body.ch-theme.ch-route-saved .ch-bookmarks-page,
body.ch-theme.ch-route-saved .ch-saved-page,
body.ch-theme.ch-route-saved .ch-bookmarks-shell,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-page,
body.ch-theme .ch-theme-community-shell--saved .ch-saved-page,
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell {
  position: relative !important;
}

/* Override the old pre-move hide rule with equal/higher specificity. */
body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  transition: none !important;
  transform: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Desktop: visually place the existing Saved nav in the header from first paint.
   No DOM move, so the subtitle/header should not jump. */
@media (min-width: 782px) {
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    position: relative !important;
    min-height: 94px !important;
    padding-right: clamp(310px, 34vw, 440px) !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    position: absolute !important;
    top: 52px !important;
    right: 16px !important;
    z-index: 50 !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    width: auto !important;
    max-width: min(340px, 42vw) !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 32px !important;
  width: auto !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  border: 1px solid color-mix(in srgb, var(--ch-theme-border) 78%, transparent) !important;
  background: color-mix(in srgb, var(--ch-theme-surface-soft) 78%, var(--ch-theme-surface)) !important;
  background-image: none !important;
  color: color-mix(in srgb, var(--ch-theme-text) 76%, var(--ch-theme-muted)) !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a.is-active,
body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a.is-active {
  background: color-mix(in srgb, var(--ch-theme-blue) 14%, var(--ch-theme-surface)) !important;
  border-color: color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border)) !important;
  color: var(--ch-theme-blue-dark) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ch-theme-blue) 10%, transparent) !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
  background: rgba(255,255,255,.055) !important;
  border-color: var(--ch-theme-border) !important;
  color: #dbeafe !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a.is-active,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a.is-active {
  background: rgba(59,130,246,.18) !important;
  border-color: rgba(96,165,250,.42) !important;
  color: #ffffff !important;
}

/* Mobile: keep the controls stable and visible without a post-render DOM move.
   They sit directly under the header instead of flashing/snapping into it. */
@media (max-width: 781px) {
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    min-height: 0 !important;
    padding-right: 13px !important;
    margin-bottom: 8px !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    position: static !important;
    order: 2 !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
  }
}


/* =========================================================
   v0.2.35: Saved Posts button row alignment
   - Keeps the no-snap/no-DOM-move Saved Posts header approach.
   - Fixes the Saved nav layout so the buttons align like the other
     social page headers instead of wrapping the active button underneath.
   - Locked desktop widget columns are intentionally untouched.
   ========================================================= */

@media (min-width: 782px) {
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    min-height: 104px !important;
    padding-right: clamp(390px, 46vw, 470px) !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-count-zero-move,
  body.ch-theme .ch-saved-page .ch-bookmarks-count-zero-move {
    top: 14px !important;
    right: 16px !important;
    min-width: 118px !important;
    height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    top: 58px !important;
    right: 16px !important;
    width: max-content !important;
    max-width: min(430px, calc(100% - 32px)) !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
    flex: 0 0 auto !important;
    min-height: 32px !important;
    padding: 7px 11px !important;
    white-space: nowrap !important;
  }
}

@media (min-width: 782px) and (max-width: 940px) {
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    padding-right: clamp(350px, 48vw, 430px) !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    max-width: min(410px, calc(100% - 32px)) !important;
    gap: 6px !important;
  }

  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}


/* =========================================================
   v0.2.37: Restore mobile admin menu/avatar tight placement
   - Built from the approved v0.2.35 Saved Posts header checkpoint so
     Saved buttons remain visible, aligned, and no-snap.
   - Admin mobile hamburger/account panels should not inherit an extra
     WordPress admin-bar gap. The approved mobile behavior is a tight
     app-style dropdown near the header controls.
   - Locked desktop widget columns and social header standard are untouched.
   ========================================================= */
@media (max-width: 782px) {
  body.admin-bar.ch-theme .ch-theme-menu-panel,
  body.admin-bar.ch-theme #ch-theme-menu-panel,
  html body.admin-bar.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  html body.admin-bar.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]) {
    top: 76px !important;
    right: 10px !important;
    left: auto !important;
    bottom: auto !important;
    width: min(360px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: min(640px, calc(100dvh - 84px)) !important;
    margin-top: 0 !important;
    transform: none !important;
  }

  body.admin-bar.ch-theme .ch-theme-account-panel,
  html body.admin-bar.ch-theme .ch-theme-account.is-open > .ch-theme-account-panel:not([hidden]) {
    top: 76px !important;
    right: 10px !important;
    left: auto !important;
    bottom: auto !important;
    width: min(360px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: min(640px, calc(100dvh - 84px)) !important;
    margin-top: 0 !important;
    transform: none !important;
  }
}


/* =========================================================
   v0.2.38: Mobile admin menu gap + quoted post color safety
   - Built on v0.2.37/v0.2.35 Saved Posts header behavior.
   - Tightens mobile hamburger/account dropdowns for admin users without
     touching locked desktop widget columns or Saved Posts button layout.
   - Normalizes quoted/reposted author and timestamp colors in light/dark mode.
   ========================================================= */
@media (max-width: 782px) {
  html body.ch-theme .ch-theme-menu-panel,
  html body.ch-theme #ch-theme-menu-panel,
  html body.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  html body.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]),
  html body.admin-bar.ch-theme .ch-theme-menu-panel,
  html body.admin-bar.ch-theme #ch-theme-menu-panel,
  html body.admin-bar.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  html body.admin-bar.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]) {
    top: 62px !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    margin-top: 0 !important;
    transform: none !important;
    max-height: min(640px, calc(100dvh - 72px)) !important;
  }

  html body.ch-theme .ch-theme-account-panel,
  html body.ch-theme .ch-theme-account.is-open > .ch-theme-account-panel:not([hidden]),
  html body.admin-bar.ch-theme .ch-theme-account-panel,
  html body.admin-bar.ch-theme .ch-theme-account.is-open > .ch-theme-account-panel:not([hidden]) {
    top: 62px !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    margin-top: 0 !important;
    transform: none !important;
    max-height: min(560px, calc(100dvh - 72px)) !important;
  }
}

/* Quoted/reposted embedded post headers should not inherit random link colors. */
body.ch-theme .ch-repost-embed .ch-repost-embed-name,
body.ch-theme .ch-repost-embed .ch-repost-embed-name a,
body.ch-theme .ch-repost-embed .ch-repost-original-name,
body.ch-theme .ch-repost-embed .ch-repost-original-name a,
body.ch-theme .ch-repost-embed .ch-repost-original-author,
body.ch-theme .ch-repost-embed .ch-repost-original-author a,
body.ch-theme .ch-repost-embed .ch-quote-original-author,
body.ch-theme .ch-repost-embed .ch-quote-original-author a,
body.ch-theme .ch-repost-embed .ch-quoted-author,
body.ch-theme .ch-repost-embed .ch-quoted-author a,
body.ch-theme .ch-repost-embed .ch-quote-author,
body.ch-theme .ch-repost-embed .ch-quote-author a,
body.ch-theme .ch-repost-embed .ch-quote-card-author,
body.ch-theme .ch-repost-embed .ch-quote-card-author a,
body.ch-theme .ch-repost-embed .ch-embed-author-name,
body.ch-theme .ch-repost-embed .ch-embed-author-name a,
body.ch-theme .ch-repost-embed-header .ch-repost-embed-name,
body.ch-theme .ch-repost-embed-header .ch-repost-embed-name a {
  color: var(--ch-theme-text) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

body.ch-theme .ch-repost-embed .ch-repost-embed-time,
body.ch-theme .ch-repost-embed .ch-repost-embed-time a,
body.ch-theme .ch-repost-embed .ch-repost-original-time,
body.ch-theme .ch-repost-embed .ch-repost-original-time a,
body.ch-theme .ch-repost-embed .ch-quote-original-time,
body.ch-theme .ch-repost-embed .ch-quote-original-time a,
body.ch-theme .ch-repost-embed .ch-quoted-time,
body.ch-theme .ch-repost-embed .ch-quoted-time a,
body.ch-theme .ch-repost-embed .ch-quote-time,
body.ch-theme .ch-repost-embed .ch-quote-time a,
body.ch-theme .ch-repost-embed .ch-embed-time,
body.ch-theme .ch-repost-embed .ch-embed-time a,
body.ch-theme .ch-repost-embed-header time,
body.ch-theme .ch-repost-embed-header time a,
body.ch-theme .ch-repost-embed-header a[href*="/activity/"] {
  color: var(--ch-theme-muted) !important;
  font-weight: 650 !important;
  text-decoration: none !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-embed-name,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-embed-name a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-name,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-name a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-original-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-original-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quoted-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quoted-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-card-author,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-card-author a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-embed-author-name,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-embed-author-name a,
body.ch-theme-mode-dark .ch-repost-embed .ch-repost-embed-name,
body.ch-theme-mode-dark .ch-repost-embed .ch-repost-embed-name a,
body.ch-theme-dark .ch-repost-embed .ch-repost-embed-name,
body.ch-theme-dark .ch-repost-embed .ch-repost-embed-name a {
  color: #f8fafc !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-embed-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-embed-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-original-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-original-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quoted-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quoted-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-embed-time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-embed-time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed-header time,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed-header time a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed-header a[href*="/activity/"],
body.ch-theme-mode-dark .ch-repost-embed .ch-repost-embed-time,
body.ch-theme-mode-dark .ch-repost-embed .ch-repost-embed-time a,
body.ch-theme-dark .ch-repost-embed .ch-repost-embed-time,
body.ch-theme-dark .ch-repost-embed .ch-repost-embed-time a {
  color: #94a3b8 !important;
}


/* =========================================================
   v0.2.39: Quoted/reposted text visibility safety
   - Built on v0.2.38, preserving the approved mobile menu/admin gap fix,
     v0.2.35 Saved Posts header behavior, and locked desktop widget columns.
   - Some quoted text-post embeds were rendering without visible body text while
     the View original post link remained visible. This pass does not change
     repost logic; it prevents theme/plugin CSS from hiding or collapsing the
     quoted/original text area when the text is present in the markup.
   ========================================================= */
body.ch-theme .ch-repost-embed .ch-repost-embed-main,
body.ch-theme .ch-repost-embed .ch-repost-original-main,
body.ch-theme .ch-repost-embed .ch-quote-original-main,
body.ch-theme .ch-repost-embed .ch-quoted-main,
body.ch-theme .ch-repost-embed .ch-original-main,
body.ch-theme .ch-quote-card .ch-repost-embed-main,
body.ch-theme .ch-quote-card .ch-original-main,
body.ch-theme .ch-repost-card .ch-repost-embed-main {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

body.ch-theme .ch-repost-embed .ch-repost-embed-text,
body.ch-theme .ch-repost-embed .ch-repost-original-text,
body.ch-theme .ch-repost-embed .ch-quote-original-text,
body.ch-theme .ch-repost-embed .ch-quoted-text,
body.ch-theme .ch-repost-embed .ch-quote-text,
body.ch-theme .ch-repost-embed .ch-original-text,
body.ch-theme .ch-repost-embed .ch-original-content,
body.ch-theme .ch-repost-embed .ch-embed-text,
body.ch-theme .ch-repost-embed .ch-embed-content,
body.ch-theme .ch-repost-embed .ch-activity-content,
body.ch-theme .ch-repost-embed .activity-content,
body.ch-theme .ch-repost-embed .activity-inner,
body.ch-theme .ch-quote-card .ch-repost-embed-text,
body.ch-theme .ch-quote-card .ch-original-content,
body.ch-theme .ch-repost-card .ch-repost-embed-text,
body.ch-theme .ch-repost-card .ch-original-content {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  margin-top: 8px !important;
  color: var(--ch-theme-text) !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  white-space: normal !important;
  word-break: break-word !important;
}

body.ch-theme .ch-repost-embed .ch-repost-embed-text p,
body.ch-theme .ch-repost-embed .ch-repost-original-text p,
body.ch-theme .ch-repost-embed .ch-quote-original-text p,
body.ch-theme .ch-repost-embed .ch-quoted-text p,
body.ch-theme .ch-repost-embed .ch-original-content p,
body.ch-theme .ch-repost-embed .activity-inner p {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 0 8px !important;
  color: inherit !important;
}

body.ch-theme .ch-repost-embed .ch-repost-embed-text:empty,
body.ch-theme .ch-repost-embed .ch-repost-original-text:empty,
body.ch-theme .ch-repost-embed .ch-quote-original-text:empty,
body.ch-theme .ch-repost-embed .ch-quoted-text:empty,
body.ch-theme .ch-repost-embed .ch-original-content:empty {
  display: none !important;
  margin: 0 !important;
}

body.ch-theme .ch-repost-embed .ch-repost-embed-text a,
body.ch-theme .ch-repost-embed .ch-repost-original-text a,
body.ch-theme .ch-repost-embed .ch-quote-original-text a,
body.ch-theme .ch-repost-embed .ch-quoted-text a,
body.ch-theme .ch-repost-embed .ch-original-content a,
body.ch-theme .ch-repost-embed .activity-inner a {
  color: var(--ch-theme-blue) !important;
  text-decoration: none !important;
  font-weight: 650 !important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-embed-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-repost-original-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-original-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quoted-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-quote-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-original-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-original-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-embed-text,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-embed-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .ch-activity-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .activity-content,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-repost-embed .activity-inner,
body.ch-theme-mode-dark .ch-repost-embed .ch-repost-embed-text,
body.ch-theme-dark .ch-repost-embed .ch-repost-embed-text {
  color: #e5edf7 !important;
}


/* =========================================================
   v0.2.42: Mobile sticky header restore + Saved Posts header structure
   - Built from v0.2.39 because v0.2.39 preserved the approved mobile
     hamburger/avatar dropdown gap and quoted post text visibility fixes.
   - Restores the mobile site header sticky behavior explicitly.
   - Does not change locked desktop widget columns.
   - Does not use JavaScript to move Saved Posts nav/buttons after load.
   - Mobile Saved Posts nav is visually attached to the header card using
     flex ordering and card-continuation styling, not negative overlap.
   ========================================================= */

@media (max-width: 782px) {
  /* The top app/header bar must stay with the page while scrolling on mobile. */
  html body.ch-theme .ch-theme-header,
  html body.admin-bar.ch-theme .ch-theme-header {
    position: sticky !important;
    position: -webkit-sticky !important;
    top: 0 !important;
    z-index: 999900 !important;
    overflow: visible !important;
  }

  html body.ch-theme .ch-theme-header-top,
  html body.ch-theme .ch-theme-header-inner,
  html body.ch-theme .ch-theme-header-actions,
  html body.ch-theme .ch-theme-account,
  html body.ch-theme .ch-theme-account--dropdown {
    overflow: visible !important;
  }

  /* Preserve the approved v0.2.38/v0.2.39 mobile dropdown gap. */
  html body.ch-theme .ch-theme-menu-panel,
  html body.ch-theme #ch-theme-menu-panel,
  html body.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  html body.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]),
  html body.admin-bar.ch-theme .ch-theme-menu-panel,
  html body.admin-bar.ch-theme #ch-theme-menu-panel,
  html body.admin-bar.ch-theme.ch-theme-menu-open #ch-theme-menu-panel:not([hidden]),
  html body.admin-bar.ch-theme.ch-theme-menu-open .ch-theme-menu-panel:not([hidden]) {
    top: 62px !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    width: min(360px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    margin-top: 0 !important;
    transform: none !important;
    max-height: min(640px, calc(100dvh - 72px)) !important;
  }

  html body.ch-theme .ch-theme-account-panel,
  html body.ch-theme .ch-theme-account.is-open > .ch-theme-account-panel:not([hidden]),
  html body.admin-bar.ch-theme .ch-theme-account-panel,
  html body.admin-bar.ch-theme .ch-theme-account.is-open > .ch-theme-account-panel:not([hidden]) {
    top: 62px !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    width: min(360px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    margin-top: 0 !important;
    transform: none !important;
    max-height: min(560px, calc(100dvh - 72px)) !important;
  }

  /* Saved Posts markup renders nav before the header in the Core Plugin:
       .ch-bookmarks-shell > nav.ch-bookmarks-nav + .ch-bookmarks-header
     On mobile, make the shell order them as header then nav, and visually
     join both pieces into one header card. This avoids the v0.2.40/v0.2.41
     negative-margin overlap and avoids JS reparenting/snap. */
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    order: 1 !important;
    position: relative !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 14px 13px 10px !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    overflow: visible !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-count-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-count-zero-move {
    position: static !important;
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    margin-top: 10px !important;
    transform: none !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    order: 2 !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    z-index: 1 !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 12px 0 !important;
    padding: 0 13px 13px !important;
    overflow: visible !important;
    transform: none !important;
    transition: none !important;
    background: var(--ch-theme-surface, #fff) !important;
    border: 1px solid var(--ch-theme-border, #d9e3f0) !important;
    border-top: 0 !important;
    border-radius: 0 0 18px 18px !important;
    box-shadow: 0 14px 32px rgba(16,24,40,.06) !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    background: var(--ch-theme-surface, #111827) !important;
    border-color: var(--ch-theme-border, #263241) !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
    flex: 0 0 auto !important;
    min-height: 32px !important;
    padding: 7px 10px !important;
    white-space: nowrap !important;
  }

  html body.ch-theme .ch-bookmarks-list,
  html body.ch-theme .ch-bookmarks-empty,
  html body.ch-theme .ch-saved-page .ch-feed,
  html body.ch-theme .ch-bookmarks-page .ch-feed {
    order: 3 !important;
  }
}

/* =========================================================
   v0.2.43: Mobile Saved Posts header button layout standard
   - Keeps the v0.2.42 sticky mobile site header and approved menu gap.
   - Keeps the no-JS-move/no-snap Saved Posts approach.
   - Fixes mobile Saved Posts so its Community/Members/Notifications/Saved
     buttons visually live inside the same header card like the other social
     page headers, instead of appearing as a separate strip below the card.
   - Locked desktop widget columns are intentionally untouched.
   ========================================================= */
@media (max-width: 781px) {
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 0 !important;
  }

  /* Header and nav share the first grid row so the nav can sit inside the
     visual header card from first paint without DOM reparenting or snapping. */
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    grid-column: 1 !important;
    grid-row: 1 !important;
    order: initial !important;
    position: relative !important;
    z-index: 1 !important;
    min-height: 0 !important;
    margin: 0 0 12px 0 !important;
    padding: 14px 13px 64px !important;
    border-radius: 18px !important;
    overflow: visible !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-count-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-count-zero-move {
    position: static !important;
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 30px !important;
    margin: 9px 0 0 !important;
    transform: none !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: end !important;
    justify-self: stretch !important;
    order: initial !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    z-index: 2 !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 13px 24px 13px !important;
    padding: 0 !important;
    overflow: visible !important;
    transform: none !important;
    transition: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
    flex: 0 0 auto !important;
    min-height: 32px !important;
    padding: 7px 10px !important;
    white-space: nowrap !important;
  }

  html body.ch-theme .ch-bookmarks-list,
  html body.ch-theme .ch-bookmarks-empty,
  html body.ch-theme .ch-saved-page .ch-feed,
  html body.ch-theme .ch-bookmarks-page .ch-feed {
    grid-column: 1 !important;
    grid-row: 2 !important;
    order: initial !important;
  }
}

/* =========================================================
   v0.2.44: Mobile Saved Posts button micro-alignment
   - Built on v0.2.43, preserving the approved mobile sticky header,
     mobile hamburger/avatar menu gap, quoted text visibility, and locked
     desktop widget columns.
   - This is a Saved Posts mobile header-only polish pass.
   - Centers the Saved Posts social nav like the other mobile social headers.
   - Removes any inherited dark nav-strip/card background behind the buttons.
   - Keeps the no-JS-move/no-snap Saved Posts approach.
   ========================================================= */
@media (max-width: 781px) {
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    padding-bottom: 58px !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme.ch-route-saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: end !important;
    justify-self: center !important;
    position: relative !important;
    z-index: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
    width: auto !important;
    max-width: calc(100% - 26px) !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto 17px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    outline: 0 !important;
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
  }

  html body.ch-theme .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move::before,
  html body.ch-theme .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move::after,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav::before,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav::after,
  html body.ch-theme.ch-route-saved .ch-bookmarks-nav::before,
  html body.ch-theme.ch-route-saved .ch-bookmarks-nav::after {
    display: none !important;
    content: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html[data-ch-theme-mode="dark"] body.ch-theme.ch-route-saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  body.ch-theme-mode-dark .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  body.ch-theme-dark .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
    flex: 0 0 auto !important;
    min-height: 32px !important;
    padding: 7px 10px !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }
}


/* =========================================================
   v0.2.45: Mobile Saved Posts button vertical rhythm
   - Micro-adjustment only.
   - Keeps the v0.2.44 centered Saved Posts buttons.
   - Balances the visual padding above and below the buttons inside the
     Saved Posts header card.
   - Does not touch sticky mobile header, mobile menu gap, quoted-post
     text visibility, or locked desktop widget columns.
   ========================================================= */
@media (max-width: 781px) {
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    padding-bottom: 58px !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme.ch-route-saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move {
    margin: 0 auto 13px !important;
  }
}

/* =========================================================
   v0.2.46: Mobile Saved Posts buttons balanced inside header card
   - Micro-adjustment only, based on the approved v0.2.45 state.
   - Keeps sticky mobile header, mobile menu/avatar gap, quoted-post text
     visibility, no-snap Saved Posts behavior, and locked desktop widgets.
   - Fixes the Saved Posts mobile buttons appearing visually too low by
     giving the nav row a predictable one-row footprint on normal mobile
     widths and equal vertical breathing room inside the header card.
   ========================================================= */
@media (max-width: 781px) {
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    /* Button height ~30px + 13px top + 13px bottom. */
    padding-bottom: 56px !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme.ch-route-saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move {
    justify-self: center !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 6px !important;
    max-width: calc(100% - 20px) !important;
    margin: 0 auto 13px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header) a,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav-zero-move a,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move a {
    flex: 0 0 auto !important;
    min-height: 30px !important;
    padding: 6px 8px !important;
    font-size: 12.5px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 360px) {
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    /* Very narrow screens may wrap the pills to two rows; keep top/bottom padding balanced. */
    padding-bottom: 92px !important;
  }

  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme.ch-route-saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav.ch-hub-page-nav.ch-bookmarks-nav-zero-move {
    margin-bottom: 13px !important;
  }
}

/* =========================================================
   v0.2.48: Saved Posts mobile header family alignment
   - Saved Core now groups count + social navigation in .ch-bookmarks-actions.
   - Cancels the obsolete v0.2.43-v0.2.46 reserved-bottom-space technique.
   - Mobile follows the same normal document flow as Members/Notifications.
   - Desktop widget columns and unrelated social headers remain untouched.
   ========================================================= */
@media (max-width: 781px) {
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    min-height: 0 !important;
    padding: 12px 13px !important;
  }

  html body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-bookmarks-actions,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-actions,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-actions {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 9px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  html body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count {
    position: static !important;
    align-self: flex-start !important;
    width: fit-content !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-bookmarks-nav-in-header,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-nav-in-header,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-nav-in-header {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  html body.ch-theme .ch-bookmarks-header.ch-page-hero .ch-bookmarks-nav-in-header a,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-nav-in-header a,
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-nav-in-header a {
    flex: 0 0 auto !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 7px 10px !important;
    font-size: 12.5px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }
}


/* =========================================================
   CommunityHub Groups — v0.2.49 foundation
   Scope: Groups directory + single group screens only.
   Does not modify locked widget columns, mobile header/menu,
   or Saved Posts header/button behavior.
   ========================================================= */
.ch-theme .ch-groups-page {
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
}

.ch-theme .ch-groups-page-header,
.ch-theme .ch-single-group-header {
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: var(--ch-theme-radius);
	box-shadow: 0 10px 30px rgba(16, 24, 40, .05);
	overflow: hidden;
}

.ch-theme .ch-groups-page-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 24px;
}

.ch-theme .ch-groups-page-heading h1,
.ch-theme .ch-single-group-identity h1,
.ch-theme .ch-group-about-card h2,
.ch-theme .ch-group-about-card h3 {
	margin: 0;
	color: var(--ch-theme-text);
}

.ch-theme .ch-groups-page-heading p,
.ch-theme .ch-single-group-description,
.ch-theme .ch-group-card-description {
	color: var(--ch-theme-muted);
}

.ch-theme .ch-groups-page-heading p {
	margin: 4px 0 0;
}

.ch-theme .ch-groups-search {
	display: flex;
	align-items: stretch;
	gap: 8px;
	width: min(100%, 380px);
}

.ch-theme .ch-groups-search input {
	min-width: 0;
	flex: 1 1 auto;
	border: 1px solid var(--ch-theme-border);
	border-radius: 999px;
	background: var(--ch-theme-surface-soft);
	color: var(--ch-theme-text);
	padding: 10px 14px;
}

.ch-theme .ch-groups-search button,
.ch-theme .ch-group-membership-button,
.ch-theme .ch-group-card-view,
.ch-theme .ch-groups-pagination a {
	border: 1px solid rgba(0, 128, 255, .28);
	border-radius: 999px;
	background: rgba(0, 128, 255, .09);
	color: var(--ch-theme-blue-dark);
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	padding: 9px 14px;
	text-decoration: none;
	cursor: pointer;
}

.ch-theme .ch-groups-search button:hover,
.ch-theme .ch-group-membership-button:hover,
.ch-theme .ch-group-card-view:hover,
.ch-theme .ch-groups-pagination a:hover {
	background: rgba(0, 128, 255, .15);
	text-decoration: none;
}

.ch-theme .ch-group-membership-button.is-member {
	background: var(--ch-theme-blue);
	border-color: var(--ch-theme-blue);
	color: #fff;
}

.ch-theme .ch-group-membership-button.is-static {
	cursor: default;
}

.ch-theme .ch-group-membership-button.is-loading {
	opacity: .65;
	cursor: progress;
}

.ch-theme .ch-groups-directory-meta {
	display: flex;
	justify-content: flex-end;
	padding: 12px 4px 10px;
	color: var(--ch-theme-muted);
	font-size: .92rem;
}

.ch-theme .ch-groups-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ch-theme .ch-group-card {
	display: grid;
	grid-template-columns: 74px minmax(0, 1fr);
	gap: 14px;
	padding: 18px;
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(16, 24, 40, .04);
}

.ch-theme .ch-group-card-avatar {
	display: block;
	width: 74px;
	height: 74px;
	object-fit: cover;
	border-radius: 16px;
	border: 1px solid var(--ch-theme-border);
	background: var(--ch-theme-surface-soft);
}

.ch-theme .ch-group-card-title-row,
.ch-theme .ch-group-card-footer,
.ch-theme .ch-single-group-title-row,
.ch-theme .ch-single-group-meta {
	display: flex;
	align-items: center;
}

.ch-theme .ch-group-card-title-row,
.ch-theme .ch-group-card-footer,
.ch-theme .ch-single-group-title-row {
	justify-content: space-between;
	gap: 12px;
}

.ch-theme .ch-group-card-title-row h2 {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ch-theme .ch-group-card-title-row h2 a {
	color: var(--ch-theme-text);
}

.ch-theme .ch-group-status {
	flex: 0 0 auto;
	padding: 4px 8px;
	border-radius: 999px;
	background: var(--ch-theme-surface-soft);
	border: 1px solid var(--ch-theme-border);
	color: var(--ch-theme-muted);
	font-size: .75rem;
	font-weight: 700;
}

.ch-theme .ch-group-card-description {
	margin: 8px 0 14px;
	font-size: .92rem;
}

.ch-theme .ch-group-card-footer {
	color: var(--ch-theme-muted);
	font-size: .86rem;
}

.ch-theme .ch-group-card-view {
	padding: 7px 11px;
	font-size: .82rem;
}

.ch-theme .ch-groups-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 20px 0 4px;
	color: var(--ch-theme-muted);
}

.ch-theme .ch-single-group-cover {
	height: 220px;
	background-position: center;
	background-size: cover;
	background-color: var(--ch-theme-surface-soft);
}

.ch-theme .ch-single-group-cover.is-empty {
	background-image: linear-gradient(135deg, rgba(0,128,255,.17), rgba(0,128,255,.04));
}

.ch-theme .ch-single-group-header-body {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 18px;
	align-items: end;
	padding: 0 24px 20px;
}

.ch-theme .ch-single-group-avatar {
	width: 132px;
	height: 132px;
	margin-top: -54px;
	object-fit: cover;
	border-radius: 24px;
	border: 5px solid var(--ch-theme-surface);
	background: var(--ch-theme-surface-soft);
}

.ch-theme .ch-single-group-title-row {
	align-items: flex-start;
}

.ch-theme .ch-single-group-identity h1 {
	font-size: clamp(1.55rem, 3vw, 2.15rem);
	line-height: 1.1;
}

.ch-theme .ch-single-group-meta {
	gap: 8px;
	margin-top: 6px;
	color: var(--ch-theme-muted);
	font-size: .9rem;
}

.ch-theme .ch-single-group-meta span + span::before {
	content: "•";
	margin-right: 8px;
}

.ch-theme .ch-single-group-description {
	margin: 10px 0 0;
}

.ch-theme .ch-single-group-nav {
	display: flex;
	gap: 6px;
	padding: 0 20px 14px;
	overflow-x: auto;
}

.ch-theme .ch-single-group-nav a {
	flex: 0 0 auto;
	padding: 9px 14px;
	border-radius: 999px;
	color: var(--ch-theme-muted);
	font-weight: 700;
	text-decoration: none;
}

.ch-theme .ch-single-group-nav a:hover,
.ch-theme .ch-single-group-nav a.is-active {
	background: rgba(0, 128, 255, .09);
	color: var(--ch-theme-blue-dark);
	text-decoration: none;
}

.ch-theme .ch-single-group-content {
	margin-top: 14px;
}

.ch-theme .ch-group-activity {
	max-width: 820px;
	margin: 0 auto;
}

.ch-theme .ch-group-members-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.ch-theme .ch-group-member-card {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 13px;
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	color: var(--ch-theme-text);
	font-weight: 700;
	text-decoration: none;
}

.ch-theme .ch-group-member-card:hover {
	text-decoration: none;
	border-color: rgba(0, 128, 255, .35);
}

.ch-theme .ch-group-member-card img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 50%;
}

.ch-theme .ch-group-about-card,
.ch-theme .ch-groups-empty {
	padding: 22px;
	background: var(--ch-theme-surface);
	border: 1px solid var(--ch-theme-border);
	border-radius: 16px;
}

.ch-theme .ch-group-about-description {
	margin-top: 10px;
	color: var(--ch-theme-text);
}

.ch-theme .ch-group-about-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 18px 0;
}

.ch-theme .ch-group-about-details > div {
	padding: 12px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 12px;
	background: var(--ch-theme-surface-soft);
}

.ch-theme .ch-group-about-details dt {
	color: var(--ch-theme-muted);
	font-size: .8rem;
	font-weight: 700;
}

.ch-theme .ch-group-about-details dd {
	margin: 3px 0 0;
	color: var(--ch-theme-text);
	font-weight: 700;
}

.ch-theme .ch-group-admins {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 10px;
}

.ch-theme .ch-group-admins a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 10px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 999px;
	color: var(--ch-theme-text);
	text-decoration: none;
}

.ch-theme .ch-group-admins img {
	border-radius: 50%;
}

@media (max-width: 780px) {
	.ch-theme .ch-groups-page-header {
		align-items: stretch;
		flex-direction: column;
		padding: 18px;
	}

	.ch-theme .ch-groups-search {
		width: 100%;
	}

	.ch-theme .ch-groups-grid,
	.ch-theme .ch-group-members-grid,
	.ch-theme .ch-group-about-details {
		grid-template-columns: 1fr;
	}

	.ch-theme .ch-single-group-cover {
		height: 150px;
	}

	.ch-theme .ch-single-group-header-body {
		grid-template-columns: 82px minmax(0, 1fr);
		gap: 12px;
		padding: 0 16px 16px;
	}

	.ch-theme .ch-single-group-avatar {
		width: 82px;
		height: 82px;
		margin-top: -34px;
		border-width: 4px;
		border-radius: 18px;
	}

	.ch-theme .ch-single-group-title-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.ch-theme .ch-single-group-nav {
		padding: 0 12px 12px;
	}

	.ch-theme .ch-group-card {
		grid-template-columns: 62px minmax(0, 1fr);
		padding: 14px;
	}

	.ch-theme .ch-group-card-avatar {
		width: 62px;
		height: 62px;
		border-radius: 14px;
	}
}

@media (max-width: 480px) {
	.ch-theme .ch-group-card-title-row,
	.ch-theme .ch-group-card-footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.ch-theme .ch-groups-search {
		flex-direction: column;
	}

	.ch-theme .ch-groups-search button {
		width: 100%;
	}
}


/* =========================================================
   CommunityHub Groups — v0.2.50 visual polish checkpoint
   Scope: Groups directory + single group screens only.
   Locked widget columns, social headers, Saved Posts, and
   mobile header/menu behavior are intentionally untouched.
   ========================================================= */

.ch-theme .ch-groups-page {
	--ch-group-accent: var(--ch-theme-blue, #0080ff);
	--ch-group-accent-soft: rgba(0, 128, 255, .08);
	--ch-group-accent-border: rgba(0, 128, 255, .20);
}

/* Directory header: make it feel like a CommunityHub product screen. */
.ch-theme .ch-groups-directory .ch-groups-page-header {
	position: relative;
	align-items: flex-end;
	padding: 24px 26px;
	background:
		linear-gradient(135deg, rgba(0,128,255,.055), transparent 48%),
		var(--ch-theme-surface);
	box-shadow: 0 8px 28px rgba(16, 24, 40, .045);
}

.ch-theme .ch-groups-directory .ch-groups-page-header::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--ch-group-accent);
	border-radius: var(--ch-theme-radius) 0 0 var(--ch-theme-radius);
}

.ch-theme .ch-groups-page-heading h1 {
	font-size: clamp(1.55rem, 2.4vw, 2rem);
	font-weight: 800;
	letter-spacing: -.025em;
}

.ch-theme .ch-groups-page-heading p {
	max-width: 580px;
	margin-top: 7px;
	font-size: .95rem;
	line-height: 1.55;
}

.ch-theme .ch-groups-search {
	padding: 5px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	background: var(--ch-theme-surface-soft);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

.ch-theme .ch-groups-search input {
	min-height: 42px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	box-shadow: none;
	outline: none;
}

.ch-theme .ch-groups-search input:focus {
	background: var(--ch-theme-surface);
	box-shadow: 0 0 0 2px var(--ch-group-accent-border);
}

.ch-theme .ch-groups-search button {
	min-height: 42px;
	padding-inline: 18px;
	border-radius: 10px;
	background: var(--ch-group-accent);
	border-color: var(--ch-group-accent);
	color: #fff;
	box-shadow: 0 5px 14px rgba(0,128,255,.16);
}

.ch-theme .ch-groups-search button:hover {
	background: var(--ch-group-accent);
	filter: brightness(1.06);
	color: #fff;
}

.ch-theme .ch-groups-directory-meta {
	justify-content: flex-start;
	padding: 14px 2px 10px;
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .01em;
}

/* Directory cards: cleaner, denser, more social-app-like. */
.ch-theme .ch-groups-grid {
	gap: 12px;
}

.ch-theme .ch-group-card {
	position: relative;
	grid-template-columns: 68px minmax(0, 1fr);
	gap: 14px;
	min-height: 150px;
	padding: 17px;
	border-radius: 18px;
	box-shadow: 0 4px 16px rgba(16, 24, 40, .035);
	transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.ch-theme .ch-group-card:hover {
	transform: translateY(-2px);
	border-color: var(--ch-group-accent-border);
	box-shadow: 0 12px 28px rgba(16, 24, 40, .075);
}

.ch-theme .ch-group-card-avatar-link {
	align-self: start;
}

.ch-theme .ch-group-card-avatar {
	width: 68px;
	height: 68px;
	border-radius: 18px;
	box-shadow: 0 2px 10px rgba(16,24,40,.08);
}

.ch-theme .ch-group-card-body {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.ch-theme .ch-group-card-title-row {
	align-items: flex-start;
	gap: 10px;
}

.ch-theme .ch-group-card-title-row h2 {
	font-size: 1.04rem;
	font-weight: 800;
	letter-spacing: -.012em;
}

.ch-theme .ch-group-card-title-row h2 a:hover {
	color: var(--ch-group-accent);
	text-decoration: none;
}

.ch-theme .ch-group-status {
	padding: 4px 8px;
	border-color: transparent;
	background: var(--ch-group-accent-soft);
	color: var(--ch-group-accent);
	font-size: .69rem;
	letter-spacing: .035em;
	text-transform: uppercase;
}

.ch-theme .ch-group-card-description {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	margin: 8px 0 12px;
	font-size: .88rem;
	line-height: 1.45;
}

.ch-theme .ch-group-card-footer {
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px solid var(--ch-theme-border);
	font-size: .8rem;
}

.ch-theme .ch-group-card-view {
	padding: 7px 12px;
	background: transparent;
	font-size: .78rem;
}

.ch-theme .ch-group-card-view:hover {
	background: var(--ch-group-accent-soft);
}

/* Single group shell: stronger hierarchy, less generic WordPress-card feel. */
.ch-theme .ch-single-group-header {
	position: relative;
	border-radius: 20px;
	box-shadow: 0 10px 32px rgba(16,24,40,.065);
}

.ch-theme .ch-single-group-cover {
	position: relative;
	height: 245px;
	background-position: center;
}

.ch-theme .ch-single-group-cover::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 46%;
	background: linear-gradient(to bottom, transparent, rgba(0,0,0,.16));
	pointer-events: none;
}

.ch-theme .ch-single-group-cover.is-empty {
	background-image:
		radial-gradient(circle at 18% 20%, rgba(0,128,255,.22), transparent 34%),
		linear-gradient(135deg, rgba(0,128,255,.18), rgba(0,128,255,.035));
}

.ch-theme .ch-single-group-header-body {
	grid-template-columns: 138px minmax(0, 1fr);
	gap: 20px;
	padding: 0 26px 21px;
}

.ch-theme .ch-single-group-avatar {
	width: 138px;
	height: 138px;
	margin-top: -62px;
	border: 5px solid var(--ch-theme-surface);
	border-radius: 26px;
	box-shadow: 0 8px 24px rgba(16,24,40,.14);
}

.ch-theme .ch-single-group-identity {
	min-width: 0;
	padding-top: 14px;
}

.ch-theme .ch-single-group-title-row {
	align-items: center;
}

.ch-theme .ch-single-group-identity h1 {
	font-size: clamp(1.7rem, 3vw, 2.25rem);
	font-weight: 850;
	letter-spacing: -.035em;
}

.ch-theme .ch-single-group-meta {
	margin-top: 7px;
	font-size: .82rem;
	font-weight: 700;
}

.ch-theme .ch-single-group-description {
	max-width: 760px;
	margin-top: 9px;
	font-size: .92rem;
	line-height: 1.5;
}

.ch-theme .ch-group-membership-button {
	min-height: 40px;
	padding: 10px 16px;
	border-radius: 12px;
	background: var(--ch-group-accent);
	border-color: var(--ch-group-accent);
	color: #fff;
	box-shadow: 0 6px 16px rgba(0,128,255,.16);
	white-space: nowrap;
}

.ch-theme .ch-group-membership-button:hover {
	background: var(--ch-group-accent);
	filter: brightness(1.06);
	color: #fff;
}

.ch-theme .ch-group-membership-button.is-member {
	background: var(--ch-theme-surface-soft);
	border-color: var(--ch-theme-border);
	color: var(--ch-theme-text);
	box-shadow: none;
}

.ch-theme .ch-group-membership-button.is-static {
	background: var(--ch-theme-surface-soft);
	border-color: var(--ch-theme-border);
	color: var(--ch-theme-muted);
	box-shadow: none;
}

.ch-theme .ch-single-group-nav {
	gap: 2px;
	padding: 0 22px 12px;
	border-top: 1px solid var(--ch-theme-border);
}

.ch-theme .ch-single-group-nav a {
	position: relative;
	margin-top: -1px;
	padding: 13px 15px 11px;
	border-radius: 0;
	font-size: .88rem;
}

.ch-theme .ch-single-group-nav a::after {
	content: "";
	position: absolute;
	left: 15px;
	right: 15px;
	bottom: 2px;
	height: 3px;
	border-radius: 3px;
	background: transparent;
}

.ch-theme .ch-single-group-nav a:hover,
.ch-theme .ch-single-group-nav a.is-active {
	background: transparent;
	color: var(--ch-theme-text);
}

.ch-theme .ch-single-group-nav a.is-active::after {
	background: var(--ch-group-accent);
}

.ch-theme .ch-single-group-content {
	margin-top: 12px;
}

/* Members / About surfaces. */
.ch-theme .ch-group-members-grid {
	gap: 10px;
}

.ch-theme .ch-group-member-card {
	padding: 14px;
	border-radius: 16px;
	font-size: .9rem;
	box-shadow: 0 3px 12px rgba(16,24,40,.025);
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.ch-theme .ch-group-member-card:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(16,24,40,.06);
}

.ch-theme .ch-group-member-card img {
	width: 50px;
	height: 50px;
	box-shadow: 0 2px 8px rgba(16,24,40,.08);
}

.ch-theme .ch-group-about-card,
.ch-theme .ch-groups-empty {
	border-radius: 18px;
	box-shadow: 0 4px 18px rgba(16,24,40,.03);
}

.ch-theme .ch-group-about-card h2 {
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -.02em;
}

.ch-theme .ch-group-about-details > div {
	padding: 14px;
	border-radius: 14px;
}

.ch-theme .ch-group-about-details dt {
	font-size: .72rem;
	letter-spacing: .035em;
	text-transform: uppercase;
}

/* Dark mode only for the new Groups surfaces. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-groups-directory .ch-groups-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-group-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-single-group-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-group-member-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-group-about-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-groups-empty {
	box-shadow: none;
}

@media (max-width: 780px) {
	.ch-theme .ch-groups-page {
		width: 100%;
	}

	.ch-theme .ch-groups-directory .ch-groups-page-header {
		align-items: stretch;
		padding: 18px;
	}

	.ch-theme .ch-groups-directory .ch-groups-page-header::before {
		width: 3px;
	}

	.ch-theme .ch-groups-page-heading h1 {
		font-size: 1.55rem;
	}

	.ch-theme .ch-groups-search {
		padding: 4px;
		border-radius: 12px;
	}

	.ch-theme .ch-groups-grid {
		gap: 10px;
	}

	.ch-theme .ch-group-card {
		grid-template-columns: 62px minmax(0, 1fr);
		min-height: 0;
		padding: 14px;
		border-radius: 16px;
	}

	.ch-theme .ch-group-card:hover {
		transform: none;
	}

	.ch-theme .ch-group-card-avatar {
		width: 62px;
		height: 62px;
		border-radius: 15px;
	}

	.ch-theme .ch-single-group-header {
		border-radius: 16px;
	}

	.ch-theme .ch-single-group-cover {
		height: 165px;
	}

	.ch-theme .ch-single-group-header-body {
		grid-template-columns: 88px minmax(0, 1fr);
		gap: 13px;
		padding: 0 16px 16px;
	}

	.ch-theme .ch-single-group-avatar {
		width: 88px;
		height: 88px;
		margin-top: -38px;
		border-width: 4px;
		border-radius: 20px;
	}

	.ch-theme .ch-single-group-identity {
		padding-top: 10px;
	}

	.ch-theme .ch-single-group-identity h1 {
		font-size: 1.45rem;
	}

	.ch-theme .ch-single-group-title-row {
		align-items: flex-start;
		gap: 10px;
	}

	.ch-theme .ch-single-group-nav {
		padding: 0 10px 8px;
	}

	.ch-theme .ch-single-group-nav a {
		padding: 12px 12px 10px;
	}

	.ch-theme .ch-single-group-nav a::after {
		left: 12px;
		right: 12px;
	}
}

@media (max-width: 560px) {
	.ch-theme .ch-single-group-header-body {
		grid-template-columns: 78px minmax(0, 1fr);
	}

	.ch-theme .ch-single-group-avatar {
		width: 78px;
		height: 78px;
		margin-top: -31px;
		border-radius: 18px;
	}

	.ch-theme .ch-single-group-title-row {
		flex-direction: column;
	}

	.ch-theme .ch-group-membership-button {
		min-height: 36px;
		padding: 8px 13px;
		font-size: .82rem;
	}

	.ch-theme .ch-group-card-title-row {
		flex-direction: row;
		align-items: flex-start;
	}

	.ch-theme .ch-group-card-footer {
		flex-direction: row;
		align-items: center;
	}

	.ch-theme .ch-groups-search {
		flex-direction: row;
	}

	.ch-theme .ch-groups-search button {
		width: auto;
	}
}

@media (max-width: 390px) {
	.ch-theme .ch-group-card {
		grid-template-columns: 54px minmax(0, 1fr);
		gap: 11px;
	}

	.ch-theme .ch-group-card-avatar {
		width: 54px;
		height: 54px;
		border-radius: 13px;
	}

	.ch-theme .ch-group-status {
		display: none;
	}

	.ch-theme .ch-group-card-footer {
		gap: 8px;
	}

	.ch-theme .ch-group-card-view {
		padding: 6px 10px;
	}
}

/* =========================================================
   CommunityHub Groups checkpoint v0.2.51
   Create/manage/invite polish only.
   Locked widget columns, mobile header/menu, social headers,
   and Saved Posts behavior are intentionally untouched.
   ========================================================= */

/* Keep the Groups directory CTA in normal document flow. */
.ch-theme .ch-groups-directory .ch-groups-page-heading {
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
}

.ch-theme .ch-groups-page-heading-copy {
	min-width: 0;
}

.ch-theme .ch-groups-directory .ch-groups-create-button {
	position: static !important;
	inset: auto !important;
	float: none !important;
	margin: 15px 0 0 !important;
	align-self: flex-start;
	transform: none !important;
}

/* Create/manage forms. */
.ch-theme .ch-groups-create .ch-groups-page-header {
	align-items: flex-start;
	padding: 23px 25px;
	background:
		linear-gradient(135deg, rgba(0,128,255,.05), transparent 52%),
		var(--ch-theme-surface);
}

.ch-theme .ch-group-create-form,
.ch-theme .ch-group-manage-panel,
.ch-theme .ch-group-invite-panel {
	margin-top: 12px;
}

.ch-theme .ch-group-settings-form {
	display: grid;
	gap: 18px;
}

.ch-theme .ch-group-form-section {
	display: grid;
	gap: 14px;
	padding: 18px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 16px;
	background: var(--ch-theme-surface-soft);
}

.ch-theme .ch-group-form-section-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ch-theme .ch-group-form-section-heading h2,
.ch-theme .ch-group-form-section-heading h3,
.ch-theme .ch-group-suggested-heading h3 {
	margin: 0;
	color: var(--ch-theme-text);
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: -.015em;
}

.ch-theme .ch-group-form-section-heading p,
.ch-theme .ch-group-suggested-heading p {
	margin: 4px 0 0;
	color: var(--ch-theme-muted);
	font-size: .82rem;
	line-height: 1.45;
}

.ch-theme .ch-group-settings-form > label,
.ch-theme .ch-group-form-section > label,
.ch-theme .ch-group-invite-form label {
	display: grid;
	gap: 7px;
	color: var(--ch-theme-text);
	font-size: .84rem;
	font-weight: 750;
}

.ch-theme .ch-group-settings-form input[type="text"],
.ch-theme .ch-group-settings-form textarea,
.ch-theme .ch-group-settings-form select,
.ch-theme .ch-group-invite-form input[type="text"] {
	width: 100%;
	min-height: 44px;
	box-sizing: border-box;
	border: 1px solid var(--ch-theme-border);
	border-radius: 12px;
	background: var(--ch-theme-surface);
	color: var(--ch-theme-text);
	font: inherit;
	padding: 10px 12px;
	box-shadow: none;
	outline: none;
}

.ch-theme .ch-group-settings-form textarea {
	min-height: 128px;
	resize: vertical;
	line-height: 1.5;
}

.ch-theme .ch-group-settings-form input:focus,
.ch-theme .ch-group-settings-form textarea:focus,
.ch-theme .ch-group-settings-form select:focus,
.ch-theme .ch-group-invite-form input:focus {
	border-color: var(--ch-group-accent);
	box-shadow: 0 0 0 3px var(--ch-group-accent-soft);
}

.ch-theme .ch-group-form-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
	margin-top: 2px;
}

.ch-theme .ch-group-form-actions-primary {
	padding-top: 2px;
}

.ch-theme .ch-group-form-actions .ch-group-membership-button,
.ch-theme .ch-group-secondary-button {
	display: inline-flex;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	border-radius: 11px;
	font: inherit;
	font-size: .84rem;
	font-weight: 800;
	line-height: 1.2;
	padding: 10px 16px;
	text-decoration: none;
	cursor: pointer;
}

.ch-theme .ch-group-secondary-button {
	border: 1px solid var(--ch-theme-border);
	background: var(--ch-theme-surface);
	color: var(--ch-theme-text);
	box-shadow: none;
}

.ch-theme .ch-group-secondary-button:hover {
	border-color: var(--ch-group-accent-border);
	background: var(--ch-group-accent-soft);
	color: var(--ch-theme-text);
	text-decoration: none;
}

.ch-theme .ch-group-secondary-button.is-invited,
.ch-theme .ch-group-secondary-button:disabled {
	opacity: .7;
	cursor: default;
}

.ch-theme .ch-group-form-status {
	min-height: 0;
	color: var(--ch-theme-muted);
	font-size: .82rem;
}

.ch-theme .ch-group-form-status:not(:empty) {
	padding: 10px 12px;
	border-radius: 10px;
	background: var(--ch-group-accent-soft);
}

.ch-theme .ch-group-form-status.is-error {
	background: rgba(210, 40, 55, .08);
	color: #b42332;
}

/* Group picture and cover picture controls. */
.ch-theme .ch-group-media-fields {
	display: grid;
	grid-template-columns: minmax(180px, .75fr) minmax(280px, 1.5fr);
	gap: 14px;
}

.ch-theme .ch-group-media-field {
	display: grid;
	align-content: start;
	gap: 8px;
	padding: 13px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 14px;
	background: var(--ch-theme-surface);
}

.ch-theme .ch-group-media-field-title {
	color: var(--ch-theme-text);
	font-size: .84rem;
	font-weight: 800;
}

.ch-theme .ch-group-media-preview {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	border: 1px dashed var(--ch-theme-border);
	background:
		linear-gradient(135deg, rgba(0,128,255,.06), transparent 60%),
		var(--ch-theme-surface-soft);
	background-position: center;
	background-size: cover;
	color: var(--ch-theme-muted);
	overflow: hidden;
}

.ch-theme .ch-group-media-preview.has-image span,
.ch-theme .ch-group-media-preview[style*="background-image"] span {
	display: none;
}

.ch-theme .ch-group-media-preview-avatar {
	width: 116px;
	height: 116px;
	border-radius: 22px;
}

.ch-theme .ch-group-media-preview-cover {
	width: 100%;
	height: 116px;
	border-radius: 14px;
}

.ch-theme .ch-group-media-field input[type="file"] {
	width: 100%;
	max-width: 100%;
	color: var(--ch-theme-muted);
	font-size: .78rem;
}

.ch-theme .ch-group-media-field input[type="file"]::file-selector-button {
	margin-right: 8px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 9px;
	background: var(--ch-theme-surface-soft);
	color: var(--ch-theme-text);
	font: inherit;
	font-weight: 750;
	padding: 7px 10px;
	cursor: pointer;
}

.ch-theme .ch-group-media-field small {
	color: var(--ch-theme-muted);
	font-size: .72rem;
	font-weight: 500;
	line-height: 1.4;
}

/* Invite panel and suggested members. */
.ch-theme .ch-group-invite-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 10px;
	margin-top: 16px;
}

.ch-theme .ch-group-invite-form .ch-group-form-actions {
	margin: 0;
}

.ch-theme .ch-group-invite-form .ch-group-form-status {
	grid-column: 1 / -1;
}

.ch-theme .ch-group-suggested-members {
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--ch-theme-border);
}

.ch-theme .ch-group-suggested-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
	margin-top: 12px;
}

.ch-theme .ch-group-suggested-member {
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 13px;
	background: var(--ch-theme-surface-soft);
}

.ch-theme .ch-group-suggested-identity {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 9px;
	color: var(--ch-theme-text);
	text-decoration: none;
}

.ch-theme .ch-group-suggested-identity img {
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	border-radius: 50%;
	object-fit: cover;
}

.ch-theme .ch-group-suggested-identity span {
	display: grid;
	min-width: 0;
	gap: 2px;
}

.ch-theme .ch-group-suggested-identity strong,
.ch-theme .ch-group-suggested-identity small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ch-theme .ch-group-suggested-identity strong {
	font-size: .82rem;
}

.ch-theme .ch-group-suggested-identity small {
	color: var(--ch-theme-muted);
	font-size: .7rem;
}

@media (max-width: 780px) {
	.ch-theme .ch-groups-directory .ch-groups-create-button {
		margin-top: 12px !important;
	}

	.ch-theme .ch-groups-create .ch-groups-page-header {
		padding: 18px;
	}

	.ch-theme .ch-group-form-section,
	.ch-theme .ch-group-create-form,
	.ch-theme .ch-group-manage-panel,
	.ch-theme .ch-group-invite-panel {
		border-radius: 15px;
	}

	.ch-theme .ch-group-form-section {
		padding: 14px;
	}

	.ch-theme .ch-group-form-section-grid,
	.ch-theme .ch-group-media-fields,
	.ch-theme .ch-group-suggested-grid,
	.ch-theme .ch-group-invite-form {
		grid-template-columns: 1fr;
	}

	.ch-theme .ch-group-media-preview-avatar {
		width: 96px;
		height: 96px;
		border-radius: 19px;
	}

	.ch-theme .ch-group-media-preview-cover {
		height: 112px;
	}

	.ch-theme .ch-group-form-actions {
		justify-content: stretch;
	}

	.ch-theme .ch-group-form-actions .ch-group-membership-button,
	.ch-theme .ch-group-form-actions .ch-group-secondary-button {
		flex: 1 1 0;
	}

	.ch-theme .ch-group-invite-form .ch-group-form-actions .ch-group-membership-button {
		width: 100%;
	}
}

/* =========================================================
   CommunityHub Groups checkpoint v0.2.52
   Media picker + group header stacking only.
   Locked widget columns, mobile header/menu, social headers,
   and Saved Posts behavior are intentionally untouched.
   ========================================================= */

/* Keep the group identity/avatar above the cover layer. */
.ch-theme .ch-single-group-header-body {
	position: relative;
	z-index: 3;
}

.ch-theme .ch-single-group-avatar {
	position: relative;
	z-index: 4;
}

.ch-theme .ch-single-group-cover,
.ch-theme .ch-single-group-cover::after {
	z-index: 1;
}

/* Modern image pickers: the native input remains accessible but is visually hidden. */
.ch-theme .ch-group-media-picker {
	position: relative;
	grid-template-rows: auto 1fr auto;
	gap: 10px;
	padding: 14px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 16px;
	background: var(--ch-theme-surface);
	box-shadow: 0 6px 18px rgba(15,23,42,.045);
	cursor: pointer;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.ch-theme .ch-group-media-picker:hover {
	border-color: var(--ch-group-accent-border);
	box-shadow: 0 10px 24px rgba(15,23,42,.07);
	transform: translateY(-1px);
}

.ch-theme .ch-group-media-input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	opacity: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.ch-theme .ch-group-media-preview {
	position: relative;
	border: 1px dashed color-mix(in srgb, var(--ch-theme-border) 78%, var(--ch-group-accent) 22%);
	background:
		linear-gradient(135deg, rgba(0,128,255,.055), transparent 62%),
		var(--ch-theme-surface-soft);
	background-position: center;
	background-size: cover;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

.ch-theme .ch-group-media-preview-avatar {
	width: 132px;
	height: 132px;
	border-radius: 28px;
}

.ch-theme .ch-group-media-preview-cover {
	height: 142px;
	border-radius: 16px;
}

.ch-theme .ch-group-media-placeholder {
	display: grid;
	gap: 4px;
	padding: 14px;
	text-align: center;
}

.ch-theme .ch-group-media-placeholder strong {
	color: var(--ch-theme-text);
	font-size: .82rem;
	font-weight: 800;
}

.ch-theme .ch-group-media-placeholder small {
	color: var(--ch-theme-muted);
	font-size: .7rem;
	font-weight: 600;
}

.ch-theme .ch-group-media-preview.has-image .ch-group-media-placeholder,
.ch-theme .ch-group-media-preview[style*="background-image"] .ch-group-media-placeholder {
	display: none;
}

.ch-theme .ch-group-media-picker-action {
	display: inline-flex;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	justify-self: start;
	padding: 8px 12px;
	border: 1px solid var(--ch-group-accent-border);
	border-radius: 10px;
	background: var(--ch-group-accent-soft);
	color: var(--ch-theme-text);
	font-size: .78rem;
	font-weight: 800;
	line-height: 1;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-group-media-picker {
	box-shadow: 0 8px 22px rgba(0,0,0,.18);
}

@media (max-width: 700px) {
	.ch-theme .ch-group-media-fields {
		grid-template-columns: 1fr;
	}

	.ch-theme .ch-group-media-preview-avatar {
		width: 116px;
		height: 116px;
	}

	.ch-theme .ch-group-media-preview-cover {
		height: 122px;
	}
}


/* v0.2.56: static Community Activity preview inside WordPress Customizer only.
   Keeps real widget columns visible without booting the AJAX social timeline. */
.customize-preview .ch-theme-customizer-community-preview-header {
  margin-bottom: 14px;
}
.customize-preview .ch-theme-customizer-feed-placeholder {
  display: grid;
  gap: 14px;
}
.customize-preview .ch-theme-customizer-feed-card {
  min-height: 150px;
  pointer-events: none;
}
.customize-preview .ch-theme-customizer-feed-card-line {
  height: 12px;
  margin: 14px 18px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ch-theme-muted) 18%, transparent);
}
.customize-preview .ch-theme-customizer-feed-card-line--short {
  width: 38%;
}

/* =========================================================
   CommunityHub Forums checkpoint v0.2.58
   Forums-only visual polish. Locked widget columns, mobile
   header/menu, social headers, Saved Posts, and Groups remain untouched.
   ========================================================= */
.ch-theme .ch-forums-page {
	--ch-forum-accent: var(--ch-theme-accent, #0080ff);
	--ch-forum-accent-soft: color-mix(in srgb, var(--ch-forum-accent) 10%, transparent);
	--ch-forum-accent-border: color-mix(in srgb, var(--ch-forum-accent) 28%, var(--ch-theme-border));
	width: 100%;
	max-width: 940px;
}

.ch-theme .ch-forums-page-header,
.ch-theme .ch-forum-row,
.ch-theme .ch-forum-topic-row,
.ch-theme .ch-forum-post-card,
.ch-theme .ch-forum-composer,
.ch-theme .ch-forums-empty,
.ch-theme .ch-forum-login-note {
	border-color: var(--ch-theme-border);
	background: var(--ch-theme-surface);
	color: var(--ch-theme-text);
	box-shadow: 0 7px 24px rgba(15,23,42,.045);
}

.ch-theme .ch-forums-page-header {
	position: relative;
	overflow: hidden;
	padding: 22px 24px;
	border-radius: 18px;
}

.ch-theme .ch-forums-page-header::after {
	content: "";
	position: absolute;
	right: -90px;
	top: -110px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--ch-forum-accent) 14%, transparent), transparent 70%);
	pointer-events: none;
}

.ch-theme .ch-forums-page-header h1 {
	position: relative;
	z-index: 1;
	font-weight: 850;
	letter-spacing: -.025em;
}

.ch-theme .ch-forums-page-header p,
.ch-theme .ch-forums-eyebrow,
.ch-theme .ch-forum-row-copy span,
.ch-theme .ch-forum-row-copy small,
.ch-theme .ch-forum-topic-copy span,
.ch-theme .ch-forum-topic-meta,
.ch-theme .ch-forum-post-author span,
.ch-theme .ch-forum-form-status,
.ch-theme .ch-forums-breadcrumb,
.ch-theme .ch-forum-login-note,
.ch-theme .ch-forums-empty p {
	color: var(--ch-theme-muted);
}

.ch-theme .ch-forums-eyebrow {
	color: var(--ch-forum-accent);
}

.ch-theme .ch-forum-row,
.ch-theme .ch-forum-topic-row,
.ch-theme .ch-forum-post-card,
.ch-theme .ch-forum-composer {
	border-radius: 16px;
}

.ch-theme .ch-forum-row {
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.ch-theme .ch-forum-row:hover {
	border-color: var(--ch-forum-accent-border);
	transform: translateY(-1px);
	box-shadow: 0 11px 28px rgba(15,23,42,.07);
}

.ch-theme .ch-forum-row-icon {
	background: var(--ch-forum-accent-soft);
	color: var(--ch-forum-accent);
	border: 1px solid var(--ch-forum-accent-border);
}

.ch-theme .ch-forum-row-copy strong,
.ch-theme .ch-forum-topic-copy strong,
.ch-theme .ch-forum-topic-meta strong,
.ch-theme .ch-forum-post-author strong,
.ch-theme .ch-forum-composer-heading strong {
	color: var(--ch-theme-text);
}

.ch-theme .ch-forum-children a,
.ch-theme .ch-forum-group-link {
	border-color: var(--ch-theme-border);
	background: var(--ch-theme-surface-soft);
	font-weight: 750;
}

.ch-theme .ch-forum-children a:hover,
.ch-theme .ch-forum-group-link:hover,
.ch-theme .ch-forums-breadcrumb a:hover {
	color: var(--ch-forum-accent);
	border-color: var(--ch-forum-accent-border);
}

.ch-theme .ch-forum-composer {
	padding: 18px;
}

.ch-theme .ch-forum-composer input,
.ch-theme .ch-forum-composer textarea {
	border-color: var(--ch-theme-border);
	background: var(--ch-theme-surface-soft);
	color: var(--ch-theme-text);
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.ch-theme .ch-forum-composer input:focus,
.ch-theme .ch-forum-composer textarea:focus {
	outline: none;
	border-color: var(--ch-forum-accent);
	background: var(--ch-theme-surface);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--ch-forum-accent) 13%, transparent);
}

.ch-theme .ch-forum-form-actions button {
	min-height: 40px;
	padding: 9px 17px;
	background: var(--ch-forum-accent);
	box-shadow: 0 6px 16px color-mix(in srgb, var(--ch-forum-accent) 18%, transparent);
}

.ch-theme .ch-forum-topic-row {
	padding: 15px 17px;
	transition: border-color .15s ease, background .15s ease;
}

.ch-theme .ch-forum-topic-row:hover {
	border-color: var(--ch-forum-accent-border);
	background: color-mix(in srgb, var(--ch-theme-surface) 94%, var(--ch-forum-accent) 6%);
}

.ch-theme .ch-forum-topic-avatar img,
.ch-theme .ch-forum-post-avatar img {
	border: 2px solid var(--ch-theme-surface);
	box-shadow: 0 0 0 1px var(--ch-theme-border);
}

.ch-theme .ch-forum-original-post {
	background: var(--ch-forum-accent-soft);
	color: var(--ch-forum-accent);
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-row,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-topic-row,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-post-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-composer {
	box-shadow: 0 8px 24px rgba(0,0,0,.18);
}

@media (max-width: 700px) {
	.ch-theme .ch-forums-page-header {
		padding: 18px;
		border-radius: 16px;
	}

	.ch-theme .ch-forum-row,
	.ch-theme .ch-forum-topic-row,
	.ch-theme .ch-forum-post-card,
	.ch-theme .ch-forum-composer {
		border-radius: 14px;
	}

	.ch-theme .ch-forum-row-main {
		align-items: flex-start;
	}

	.ch-theme .ch-forum-row-stats {
		padding-top: 2px;
	}

	.ch-theme .ch-forum-topic-row {
		gap: 9px;
	}

	.ch-theme .ch-forum-topic-meta {
		min-width: 54px;
	}

	.ch-theme .ch-forum-form-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.ch-theme .ch-forum-form-actions button {
		width: 100%;
	}
}

/* =========================================================
   CommunityHub Forums checkpoint v0.2.59
   Forums-only visual/data presentation polish. Does not alter
   locked widget columns, mobile header/menu, Saved Posts, or Groups.
   ========================================================= */
.ch-theme .ch-forums-page {
	max-width: 980px;
}

.ch-theme .ch-forums-directory .ch-forums-list,
.ch-theme .ch-forums-list--children,
.ch-theme .ch-forum-topic-list,
.ch-theme .ch-topic-thread {
	gap: 12px;
}

.ch-theme .ch-forum-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: stretch;
	position: relative;
	isolation: isolate;
}

.ch-theme .ch-forum-row-main {
	padding: 18px 20px;
	gap: 15px;
}

.ch-theme .ch-forum-row-icon {
	width: 46px;
	height: 46px;
	flex-basis: 46px;
	border-radius: 14px;
	font-size: 1.1rem;
}

.ch-theme .ch-forum-row-copy {
	gap: 5px;
}

.ch-theme .ch-forum-row-copy strong {
	font-size: 1.02rem;
	line-height: 1.25;
}

.ch-theme .ch-forum-row-copy span {
	font-size: .84rem;
	line-height: 1.45;
}

.ch-theme .ch-forum-row-stats {
	min-width: 150px;
	padding: 16px 18px;
	align-items: center;
	justify-content: center;
	border-left: 1px solid var(--ch-theme-border);
	background: color-mix(in srgb, var(--ch-theme-surface-soft) 72%, transparent);
}

.ch-theme .ch-forum-row-stats span {
	min-width: 48px;
	text-align: center;
	gap: 2px;
}

.ch-theme .ch-forum-row-stats strong {
	font-size: .98rem;
}

.ch-theme .ch-forum-children {
	grid-column: 1 / -1;
	padding: 0 20px 17px 81px;
	border-top: 1px solid color-mix(in srgb, var(--ch-theme-border) 72%, transparent);
	padding-top: 12px;
}

.ch-theme .ch-forum-single-header {
	margin-bottom: 16px;
}

.ch-theme .ch-forum-header-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.ch-theme .ch-forum-header-stats span {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 7px 10px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 999px;
	background: var(--ch-theme-surface-soft);
	color: var(--ch-theme-muted);
	font-size: .76rem;
	font-weight: 700;
}

.ch-theme .ch-forum-header-stats strong {
	color: var(--ch-theme-text);
	font-size: .9rem;
}

.ch-theme .ch-forum-single-header .ch-forum-group-link {
	display: inline-flex;
	margin-top: 10px;
}

.ch-theme .ch-forum-section {
	display: grid;
	gap: 10px;
	margin: 0 0 16px;
}

.ch-theme .ch-forum-section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 12px;
	padding: 0 2px;
}

.ch-theme .ch-forum-section-heading > div {
	display: grid;
	gap: 2px;
}

.ch-theme .ch-forum-section-heading span {
	color: var(--ch-theme-muted);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ch-theme .ch-forum-section-heading h2 {
	margin: 0;
	color: var(--ch-theme-text);
	font-size: 1.08rem;
	line-height: 1.25;
}

.ch-theme .ch-forum-section-heading > strong {
	display: grid;
	place-items: center;
	min-width: 34px;
	height: 30px;
	padding: 0 9px;
	border: 1px solid var(--ch-forum-accent-border);
	border-radius: 999px;
	background: var(--ch-forum-accent-soft);
	color: var(--ch-forum-accent);
	font-size: .78rem;
}

.ch-theme .ch-forum-composer {
	margin-top: 0;
	box-shadow: 0 8px 26px rgba(15,23,42,.055);
}

.ch-theme .ch-forum-topic-row {
	min-height: 74px;
}

.ch-theme .ch-forum-topic-copy strong {
	font-size: .96rem;
}

.ch-theme .ch-forum-topic-meta {
	padding-left: 14px;
	border-left: 1px solid var(--ch-theme-border);
}

.ch-theme .ch-forum-post-card {
	padding: 18px 20px;
}

.ch-theme .ch-forum-post-content {
	font-size: .94rem;
	line-height: 1.65;
}

@media (max-width: 700px) {
	.ch-theme .ch-forum-row {
		grid-template-columns: 1fr;
	}

	.ch-theme .ch-forum-row-main {
		padding: 15px;
	}

	.ch-theme .ch-forum-row-stats {
		min-width: 0;
		justify-content: flex-start;
		padding: 11px 15px 14px 76px;
		border-left: 0;
		border-top: 1px solid var(--ch-theme-border);
	}

	.ch-theme .ch-forum-children {
		padding: 11px 15px 15px;
	}

	.ch-theme .ch-forum-topic-row {
		min-height: 0;
	}

	.ch-theme .ch-forum-topic-meta {
		padding-left: 8px;
	}

	.ch-theme .ch-forum-post-card {
		padding: 16px;
	}
}


/* v0.2.60 — Forums engagement controls + Group Forum tab polish only */
.ch-theme .ch-forum-header-actions,.ch-theme .ch-forum-actions{gap:8px}.ch-theme .ch-forum-action-button{border-color:var(--ch-theme-border,#dce3eb);background:var(--ch-theme-surface,#fff);color:var(--ch-theme-text,#1f2937);box-shadow:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}.ch-theme .ch-forum-action-button:hover{transform:translateY(-1px);border-color:var(--ch-forum-accent-border);background:var(--ch-forum-accent-soft)}.ch-theme .ch-forum-action-button.is-active{background:var(--ch-forum-accent-soft);border-color:var(--ch-forum-accent-border);color:var(--ch-forum-accent)}.ch-theme .ch-forum-action-button.is-danger{color:#c33}.ch-theme .ch-group-forum-intro,.ch-theme .ch-group-forum-stats span,.ch-theme .ch-group-forum-recent{border-color:var(--ch-theme-border,#dce3eb);background:var(--ch-theme-surface,#fff);color:var(--ch-theme-text,#1f2937)}.ch-theme .ch-group-forum-recent a{border-color:var(--ch-theme-border,#e7ebf0);color:inherit}.ch-theme .ch-group-primary-action{background:var(--ch-forum-accent,#1473e6);color:#fff}.ch-theme .ch-group-section-eyebrow{color:var(--ch-forum-accent,#1473e6);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-action-button{background:var(--ch-theme-surface,#151b24);color:var(--ch-theme-text,#edf2f7)}


/* v0.2.64: flexible header branding. */
.ch-theme-brand {
	--ch-logo-height: 56px;
	--ch-logo-mobile-height: 40px;
}
.ch-theme-brand--logo-title {
	flex-direction: row;
	align-items: center;
	gap: 10px;
	max-width: 420px;
}
.ch-theme-brand-copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.ch-theme-brand .custom-logo-link {
	display: flex;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
}
.ch-theme-brand .custom-logo-link img {
	display: block;
	width: auto !important;
	height: auto !important;
	max-width: min(320px, 34vw);
	max-height: var(--ch-logo-height) !important;
	object-fit: contain;
}
@media (max-width: 782px) {
	.ch-theme-brand .custom-logo-link img {
		max-width: min(220px, 46vw);
		max-height: var(--ch-logo-mobile-height) !important;
	}
	.ch-theme-brand--logo-title .ch-theme-site-title {
		font-size: 1rem;
	}
}
@media (max-width: 480px) {
	.ch-theme-brand--logo-title .ch-theme-site-description {
		display: none;
	}
}


/* v0.2.65 — creative header logo masks and frames. */
.ch-theme-brand[class*="ch-theme-brand-shape--"] .custom-logo-link {
	position: relative;
	isolation: isolate;
}

.ch-theme-brand:not(.ch-theme-brand-shape--natural) .custom-logo-link {
	width: var(--ch-logo-height);
	height: var(--ch-logo-height);
	min-width: var(--ch-logo-height);
	max-width: var(--ch-logo-height);
	overflow: hidden;
}

.ch-theme-brand:not(.ch-theme-brand-shape--natural) .custom-logo-link img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
}

.ch-theme-brand-shape--rounded .custom-logo-link,
.ch-theme-brand-shape--rounded .custom-logo-link img {
	border-radius: 22%;
}

.ch-theme-brand-shape--circle .custom-logo-link,
.ch-theme-brand-shape--circle .custom-logo-link img {
	border-radius: 50%;
}

.ch-theme-brand-shape--squircle .custom-logo-link,
.ch-theme-brand-shape--squircle .custom-logo-link img {
	border-radius: 34%;
}

.ch-theme-brand-shape--diamond .custom-logo-link,
.ch-theme-brand-shape--diamond .custom-logo-link img {
	clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.ch-theme-brand-shape--hexagon .custom-logo-link,
.ch-theme-brand-shape--hexagon .custom-logo-link img {
	clip-path: polygon(25% 5%, 75% 5%, 100% 50%, 75% 95%, 25% 95%, 0 50%);
}

.ch-theme-brand-shape--shield .custom-logo-link,
.ch-theme-brand-shape--shield .custom-logo-link img {
	clip-path: polygon(10% 5%, 90% 5%, 92% 58%, 50% 100%, 8% 58%);
}

.ch-theme-brand-shape--triangle .custom-logo-link,
.ch-theme-brand-shape--triangle .custom-logo-link img {
	clip-path: polygon(50% 4%, 97% 91%, 3% 91%);
}

.ch-theme-brand-frame--subtle .custom-logo-link {
	box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent), 0 3px 10px rgba(0,0,0,.10);
}

.ch-theme-brand-frame--accent .custom-logo-link {
	box-shadow: 0 0 0 2px var(--ch-theme-accent, #1473e6), 0 3px 12px rgba(0,0,0,.12);
}

.ch-theme-brand-frame--glow .custom-logo-link {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--ch-theme-accent, #1473e6) 55%, transparent), 0 0 16px color-mix(in srgb, var(--ch-theme-accent, #1473e6) 42%, transparent);
}

/* Clip-path shapes need their visual frame on a pseudo layer so the image itself stays crisp. */
.ch-theme-brand-frame--accent.ch-theme-brand-shape--diamond .custom-logo-link,
.ch-theme-brand-frame--accent.ch-theme-brand-shape--hexagon .custom-logo-link,
.ch-theme-brand-frame--accent.ch-theme-brand-shape--shield .custom-logo-link,
.ch-theme-brand-frame--accent.ch-theme-brand-shape--triangle .custom-logo-link,
.ch-theme-brand-frame--glow.ch-theme-brand-shape--diamond .custom-logo-link,
.ch-theme-brand-frame--glow.ch-theme-brand-shape--hexagon .custom-logo-link,
.ch-theme-brand-frame--glow.ch-theme-brand-shape--shield .custom-logo-link,
.ch-theme-brand-frame--glow.ch-theme-brand-shape--triangle .custom-logo-link {
	filter: drop-shadow(0 0 5px color-mix(in srgb, var(--ch-theme-accent, #1473e6) 50%, transparent));
}

@media (max-width: 782px) {
	.ch-theme-brand:not(.ch-theme-brand-shape--natural) .custom-logo-link {
		width: var(--ch-logo-mobile-height);
		height: var(--ch-logo-mobile-height);
		min-width: var(--ch-logo-mobile-height);
		max-width: var(--ch-logo-mobile-height);
	}
}


/* =========================================================
   v0.2.66 — signed-in/out brand destinations + dark logo
   ========================================================= */

.ch-theme-brand .ch-theme-logo-link {
	position: relative;
}

.ch-theme-brand .ch-theme-mode-logo--dark {
	display: none !important;
}

html[data-ch-theme-mode="dark"] .ch-theme-brand .ch-theme-mode-logo--light {
	display: none !important;
}

html[data-ch-theme-mode="dark"] .ch-theme-brand .ch-theme-mode-logo--dark {
	display: block !important;
}

/* If no dark logo exists, the standard logo remains visible in dark mode. */
html[data-ch-theme-mode="dark"] .ch-theme-brand .ch-theme-mode-logo--light:only-child {
	display: block !important;
}

/* Keep the selected creative mask/frame identical when the source logo swaps. */
.ch-theme-brand:not(.ch-theme-brand-shape--natural) .ch-theme-logo-link .ch-theme-mode-logo {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
}

.ch-theme-brand:not(.ch-theme-brand-shape--natural) .ch-theme-logo-link .ch-theme-mode-logo:first-child {
	position: relative !important;
}

.ch-theme-brand-shape--natural .ch-theme-logo-link .ch-theme-mode-logo {
	width: auto !important;
	height: auto !important;
	max-width: min(320px, 34vw) !important;
	max-height: var(--ch-logo-height) !important;
	object-fit: contain !important;
}

@media (max-width: 782px) {
	.ch-theme-brand-shape--natural .ch-theme-logo-link .ch-theme-mode-logo {
		max-width: min(220px, 46vw) !important;
		max-height: var(--ch-logo-mobile-height) !important;
	}
}


/* v0.2.69: Elementor owns page backgrounds on Elementor-built pages.
   CommunityHub still supplies its header/footer/typography shell, but does not
   force the Theme light/dark page background over Elementor's design choices. */


/* =========================================================
   v0.2.70 — Blog layout expansion + readable widget rails
   ========================================================= */

/* Blog/archive/single pages get a wider shell than generic content pages. */
.ch-theme-main--blog .ch-theme-container,
.ch-theme-main--single .ch-theme-container {
	width: min(100% - 32px, 1320px) !important;
	max-width: 1320px !important;
	margin-inline: auto !important;
}

/* Standard = approximately CommunityHub's approved one-rail width. */
body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-right,
body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-right {
	grid-template-columns: minmax(0, 1fr) minmax(250px, 285px) !important;
}
body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-left,
body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-left {
	grid-template-columns: minmax(250px, 285px) minmax(0, 1fr) !important;
}
body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-both,
body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-both {
	grid-template-columns: minmax(220px, 250px) minmax(0, 1fr) minmax(220px, 250px) !important;
}

/* Comfortable = default readable rail. */
body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-right,
body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-right {
	grid-template-columns: minmax(0, 1fr) minmax(300px, 325px) !important;
}
body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-left,
body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-left {
	grid-template-columns: minmax(300px, 325px) minmax(0, 1fr) !important;
}
body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-both,
body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-both {
	grid-template-columns: minmax(245px, 280px) minmax(0, 1fr) minmax(245px, 280px) !important;
}

/* Wide = good for weather, commerce, forms, and content-heavy widgets. */
body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-right,
body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-right {
	grid-template-columns: minmax(0, 1fr) minmax(330px, 370px) !important;
}
body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-left,
body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-left {
	grid-template-columns: minmax(330px, 370px) minmax(0, 1fr) !important;
}
body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-both,
body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-both {
	grid-template-columns: minmax(270px, 305px) minmax(0, 1fr) minmax(270px, 305px) !important;
}

.ch-theme-main--blog .ch-theme-sidebar,
.ch-theme-main--single .ch-theme-sidebar {
	min-width: 0 !important;
	width: 100% !important;
}

/* Magazine: newest story leads, remaining cards become a clean 2-column grid. */
.ch-theme-blog-layout-magazine .ch-theme-post-list--blog {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 20px !important;
}
.ch-theme-blog-layout-magazine .ch-theme-post-list--blog > .ch-theme-post-card:first-child {
	grid-column: 1 / -1 !important;
	display: grid !important;
	grid-template-columns: minmax(280px, 1.15fr) minmax(0, 1fr) !important;
	min-height: 330px !important;
}
.ch-theme-blog-layout-magazine .ch-theme-post-list--blog > .ch-theme-post-card:first-child .ch-theme-post-thumb {
	min-height: 330px !important;
	height: 100% !important;
}
.ch-theme-blog-layout-magazine .ch-theme-post-list--blog > .ch-theme-post-card:not(:first-child) {
	display: flex !important;
	flex-direction: column !important;
}
.ch-theme-blog-layout-magazine .ch-theme-post-list--blog > .ch-theme-post-card:not(:first-child) .ch-theme-post-thumb {
	height: 190px !important;
	min-height: 190px !important;
}

/* Featured Grid: visual news/homepage feel with first story dominant. */
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 16px !important;
}
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card:first-child {
	grid-column: 1 / -1 !important;
}
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card:first-child .ch-theme-post-thumb {
	height: 360px !important;
	min-height: 360px !important;
}
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(n+2) .ch-theme-post-thumb {
	height: 180px !important;
	min-height: 180px !important;
}
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card {
	overflow: hidden !important;
}

/* Editorial: large, calm alternating story rows. */
.ch-theme-blog-layout-editorial .ch-theme-post-list--blog {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 22px !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card {
	display: grid !important;
	grid-template-columns: minmax(260px, 38%) minmax(0, 1fr) !important;
	min-height: 230px !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(even) {
	grid-template-columns: minmax(0, 1fr) minmax(260px, 38%) !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(even) .ch-theme-post-thumb {
	order: 2 !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(even) .ch-theme-post-body {
	order: 1 !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-thumb {
	height: 100% !important;
	min-height: 230px !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-body {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	padding: 24px !important;
}
.ch-theme-blog-layout-editorial .ch-theme-post-title,
.ch-theme-blog-layout-editorial .ch-theme-post-card h2 {
	font-size: clamp(1.3rem, 2.2vw, 1.85rem) !important;
	line-height: 1.12 !important;
}

/* New layouts collapse cleanly on tablet/mobile. */
@media (max-width: 900px) {
	.ch-theme-blog-layout-magazine .ch-theme-post-list--blog,
	.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog {
		grid-template-columns: 1fr !important;
	}

	.ch-theme-blog-layout-magazine .ch-theme-post-list--blog > .ch-theme-post-card:first-child,
	.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card,
	.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(even) {
		grid-template-columns: 1fr !important;
	}

	.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(even) .ch-theme-post-thumb,
	.ch-theme-blog-layout-editorial .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(even) .ch-theme-post-body {
		order: initial !important;
	}

	.ch-theme-blog-layout-magazine .ch-theme-post-list--blog > .ch-theme-post-card:first-child .ch-theme-post-thumb,
	.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card:first-child .ch-theme-post-thumb,
	.ch-theme-blog-layout-editorial .ch-theme-post-thumb {
		height: 220px !important;
		min-height: 220px !important;
	}
}


/* =========================================================
   v0.2.71 — Blog Experience
   Scoped to WordPress Blog/archive/single screens only.
   ========================================================= */

/* More desktop canvas so wide widget rails do not steal the reading lane. */
@media (min-width: 1180px) {
	.ch-theme-main--blog .ch-theme-container,
	.ch-theme-main--single .ch-theme-container {
		width: min(calc(100% - 32px), 1580px) !important;
		max-width: 1580px !important;
	}

	body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-both,
	body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(285px, 310px) minmax(620px, 1fr) minmax(285px, 310px) !important;
	}

	body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-both,
	body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(315px, 340px) minmax(620px, 1fr) minmax(315px, 340px) !important;
	}

	body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-both,
	body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(345px, 375px) minmax(620px, 1fr) minmax(345px, 375px) !important;
	}

	body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-left,
	body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-left {
		grid-template-columns: minmax(300px, 325px) minmax(680px, 1fr) !important;
	}
	body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-right,
	body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-right {
		grid-template-columns: minmax(680px, 1fr) minmax(300px, 325px) !important;
	}

	body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-left,
	body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-left {
		grid-template-columns: minmax(335px, 360px) minmax(680px, 1fr) !important;
	}
	body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-right,
	body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-right {
		grid-template-columns: minmax(680px, 1fr) minmax(335px, 360px) !important;
	}

	body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-left,
	body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-left {
		grid-template-columns: minmax(375px, 410px) minmax(680px, 1fr) !important;
	}
	body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-right,
	body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-right {
		grid-template-columns: minmax(680px, 1fr) minmax(375px, 410px) !important;
	}
}

/* Never let grid/card children force the center lane narrower than intended. */
.ch-theme-main--blog .ch-theme-content-wrap,
.ch-theme-main--blog .ch-theme-post-list--blog,
.ch-theme-main--blog .ch-theme-post-card,
.ch-theme-main--blog .ch-theme-post-body,
.ch-theme-main--single .ch-theme-content-wrap {
	min-width: 0 !important;
}

/* Featured Grid is sidebar-aware. With two rails, readability wins over columns. */
.ch-theme-main--blog .ch-theme-layout--sidebar-both .ch-theme-blog-wrap .ch-theme-post-list--blog {
	container-type: inline-size;
}

.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog {
	grid-template-columns: 1fr !important;
}

.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog > .ch-theme-post-card,
.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog > .ch-theme-post-card:first-child {
	display: grid !important;
	grid-template-columns: minmax(220px, 38%) minmax(0, 1fr) !important;
	min-height: 210px !important;
}

.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog .ch-theme-post-thumb {
	height: 100% !important;
	min-height: 210px !important;
}

.ch-theme-blog-layout-featured-grid .ch-theme-post-title,
.ch-theme-blog-layout-featured-grid .ch-theme-post-title a,
.ch-theme-blog-layout-featured-grid .ch-theme-post-excerpt,
.ch-theme-blog-layout-featured-grid .ch-theme-post-meta,
.ch-theme-blog-layout-featured-grid .ch-theme-blog-engagement {
	min-width: 0 !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	white-space: normal !important;
}

.ch-theme-blog-layout-featured-grid .ch-theme-post-title {
	font-size: clamp(1.2rem, 1.6vw, 1.65rem) !important;
	line-height: 1.14 !important;
}

.ch-theme-blog-layout-featured-grid .ch-theme-post-excerpt {
	font-size: .96rem !important;
	line-height: 1.55 !important;
}

/* Category discovery */
.ch-theme-blog-categories {
	display: flex;
	gap: 8px;
	margin: 0 0 18px;
	padding: 4px 0 8px;
	overflow-x: auto;
	scrollbar-width: thin;
}
.ch-theme-blog-categories a {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	padding: 8px 12px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 999px;
	background: var(--ch-theme-card);
	color: var(--ch-theme-text);
	font-size: .88rem;
	font-weight: 700;
	text-decoration: none;
}
.ch-theme-blog-categories a:hover,
.ch-theme-blog-categories a.is-active {
	border-color: color-mix(in srgb, var(--ch-theme-blue) 60%, var(--ch-theme-border));
	background: color-mix(in srgb, var(--ch-theme-blue) 10%, var(--ch-theme-card));
	color: var(--ch-theme-blue);
}

/* Trending / most discussed */
.ch-theme-blog-trending {
	margin: 0 0 20px;
	padding: 18px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 18px;
	background: var(--ch-theme-card);
}
.ch-theme-section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}
.ch-theme-section-heading h2 {
	margin: 2px 0 0;
	font-size: 1.3rem;
}
.ch-theme-trending-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 16px;
}
.ch-theme-trending-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-width: 0;
	padding: 10px 0;
	border-bottom: 1px solid color-mix(in srgb, var(--ch-theme-border) 70%, transparent);
	color: var(--ch-theme-text);
	text-decoration: none;
}
.ch-theme-trending-title {
	min-width: 0;
	font-weight: 750;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ch-theme-trending-meta {
	flex: 0 0 auto;
	font-size: .78rem;
	color: var(--ch-theme-muted);
}

/* Featured/sticky treatment */
.ch-theme-featured-badge {
	display: inline-flex;
	align-items: center;
	margin: 0 0 8px;
	padding: 5px 9px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--ch-theme-blue) 13%, var(--ch-theme-card));
	border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 45%, var(--ch-theme-border));
	color: var(--ch-theme-blue);
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .045em;
	text-transform: uppercase;
}

/* Reading time / archive engagement */
.ch-theme-blog-engagement {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 9px;
}
.ch-theme-blog-stat {
	display: inline-flex;
	align-items: center;
	padding: 5px 8px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--ch-theme-text) 5%, transparent);
	color: var(--ch-theme-muted);
	font-size: .76rem;
	font-weight: 700;
}

/* Article-to-community bridge */
.ch-theme-community-discussion-link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	margin-top: 18px;
	padding: 14px 16px;
	border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 42%, var(--ch-theme-border));
	border-radius: 14px;
	background: color-mix(in srgb, var(--ch-theme-blue) 8%, var(--ch-theme-card));
	color: var(--ch-theme-text);
	font-weight: 800;
	text-decoration: none;
}
.ch-theme-community-discussion-link:hover {
	color: var(--ch-theme-blue);
}

/* Author cards */
.ch-theme-author-card {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 18px;
	margin-top: 24px;
	padding: 20px;
	border: 1px solid var(--ch-theme-border);
	border-radius: 18px;
	background: var(--ch-theme-card);
}
.ch-theme-author-avatar img {
	display: block;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	object-fit: cover;
}
.ch-theme-author-copy h2 {
	margin: 2px 0 6px;
	font-size: 1.3rem;
}
.ch-theme-author-copy p {
	margin: 0 0 8px;
	color: var(--ch-theme-muted);
}
.ch-theme-author-copy a {
	font-weight: 750;
	text-decoration: none;
}

/* Related stories */
.ch-theme-related-posts {
	margin-top: 26px;
}
.ch-theme-related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}
.ch-theme-related-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--ch-theme-border);
	border-radius: 16px;
	background: var(--ch-theme-card);
	color: var(--ch-theme-text);
	text-decoration: none;
}
.ch-theme-related-thumb {
	display: block;
	height: 150px;
	overflow: hidden;
}
.ch-theme-related-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ch-theme-related-body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px;
}
.ch-theme-related-body strong {
	line-height: 1.25;
}
.ch-theme-related-body small {
	color: var(--ch-theme-muted);
}

@media (max-width: 1100px) {
	.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog > .ch-theme-post-card,
	.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog > .ch-theme-post-card:first-child {
		grid-template-columns: 1fr !important;
	}
	.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog .ch-theme-post-thumb {
		height: 220px !important;
	}
}

@media (max-width: 760px) {
	.ch-theme-trending-list,
	.ch-theme-related-grid {
		grid-template-columns: 1fr;
	}
	.ch-theme-author-card {
		grid-template-columns: 64px minmax(0, 1fr);
		padding: 16px;
	}
	.ch-theme-author-avatar img {
		width: 64px;
		height: 64px;
	}
}


/* =========================================================
   v0.2.72 — Blog readability + independent rail checkpoint
   ========================================================= */

/*
 * Blog pages use nearly the full desktop viewport. This is intentionally
 * separate from the locked CommunityHub activity/member rail dimensions.
 */
@media (min-width: 1180px) {
	.ch-theme-main--blog .ch-theme-container,
	.ch-theme-main--single .ch-theme-container {
		width: min(calc(100vw - 28px), 1900px) !important;
		max-width: 1900px !important;
	}

	body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-both,
	body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(320px, 350px) minmax(680px, 1fr) minmax(320px, 350px) !important;
		gap: 22px !important;
	}
	body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-both,
	body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(360px, 390px) minmax(680px, 1fr) minmax(360px, 390px) !important;
		gap: 22px !important;
	}
	body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-both,
	body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(400px, 440px) minmax(700px, 1fr) minmax(400px, 440px) !important;
		gap: 24px !important;
	}

	body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-left,
	body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-left {
		grid-template-columns: minmax(330px, 370px) minmax(760px, 1fr) !important;
	}
	body.ch-theme-blog-rail-standard .ch-theme-main--blog .ch-theme-layout--sidebar-right,
	body.ch-theme-blog-rail-standard .ch-theme-main--single .ch-theme-layout--sidebar-right {
		grid-template-columns: minmax(760px, 1fr) minmax(330px, 370px) !important;
	}
	body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-left,
	body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-left {
		grid-template-columns: minmax(380px, 410px) minmax(760px, 1fr) !important;
	}
	body.ch-theme-blog-rail-comfortable .ch-theme-main--blog .ch-theme-layout--sidebar-right,
	body.ch-theme-blog-rail-comfortable .ch-theme-main--single .ch-theme-layout--sidebar-right {
		grid-template-columns: minmax(760px, 1fr) minmax(380px, 410px) !important;
	}
	body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-left,
	body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-left {
		grid-template-columns: minmax(430px, 470px) minmax(780px, 1fr) !important;
	}
	body.ch-theme-blog-rail-wide .ch-theme-main--blog .ch-theme-layout--sidebar-right,
	body.ch-theme-blog-rail-wide .ch-theme-main--single .ch-theme-layout--sidebar-right {
		grid-template-columns: minmax(780px, 1fr) minmax(430px, 470px) !important;
	}

	/* Earlier single-post max-width rule must not squeeze the new Blog Post rails. */
	.ch-theme-main--single .ch-theme-content-wrap {
		max-width: none !important;
		width: 100% !important;
		margin-inline: 0 !important;
	}
}

/* Compact Grid: never create unreadably narrow card text. */
.ch-theme-blog-layout-compact .ch-theme-post-list--blog {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)) !important;
	gap: 18px !important;
}
.ch-theme-blog-layout-compact .ch-theme-layout--sidebar-both .ch-theme-post-list--blog {
	grid-template-columns: 1fr !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-card {
	min-width: 0 !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-title,
.ch-theme-blog-layout-compact .ch-theme-post-title a {
	font-size: clamp(1.12rem, 1.5vw, 1.4rem) !important;
	line-height: 1.2 !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	white-space: normal !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-excerpt {
	font-size: .94rem !important;
	line-height: 1.55 !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-thumb {
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: 16 / 9 !important;
	background: color-mix(in srgb, var(--ch-theme-text) 4%, var(--ch-theme-card)) !important;
}
.ch-theme-blog-layout-compact .ch-theme-post-thumb img {
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	object-fit: contain !important;
}

/* Featured Grid: show the complete thumbnail instead of cropping posts 2+. */
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(n+2) .ch-theme-post-thumb {
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: 16 / 9 !important;
	background: color-mix(in srgb, var(--ch-theme-text) 4%, var(--ch-theme-card)) !important;
}
.ch-theme-blog-layout-featured-grid .ch-theme-post-list--blog > .ch-theme-post-card:nth-child(n+2) .ch-theme-post-thumb img {
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: center !important;
}

/* Automatic content/video thumbnails. */
.ch-theme-post-thumb {
	position: relative;
}
.ch-theme-post-card-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ch-theme-post-thumb--video .ch-theme-post-card-image {
	object-fit: contain;
	background: #000;
}
.ch-theme-video-thumb-badge {
	position: absolute;
	left: 50%;
	top: 50%;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	transform: translate(-50%, -50%);
	background: rgba(0, 0, 0, .72);
	color: #fff;
	font-size: 18px;
	line-height: 1;
	pointer-events: none;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .25);
}

/* Dedicated Blog widget columns must use their available width. */
.ch-theme-main--blog .ch-theme-sidebar .ch-theme-widget,
.ch-theme-main--single .ch-theme-sidebar .ch-theme-widget {
	min-width: 0 !important;
	max-width: none !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
.ch-theme-main--blog .ch-theme-sidebar img,
.ch-theme-main--single .ch-theme-sidebar img,
.ch-theme-main--blog .ch-theme-sidebar iframe,
.ch-theme-main--single .ch-theme-sidebar iframe {
	max-width: 100% !important;
}

/* At intermediate desktop widths, preserve readable content before forcing 3 columns. */
@media (min-width: 1025px) and (max-width: 1399px) {
	.ch-theme-main--blog .ch-theme-layout--sidebar-both,
	.ch-theme-main--single .ch-theme-layout--sidebar-both {
		grid-template-columns: minmax(280px, 320px) minmax(560px, 1fr) minmax(280px, 320px) !important;
	}
	.ch-theme-blog-layout-compact .ch-theme-layout--sidebar-both .ch-theme-post-list--blog,
	.ch-theme-blog-layout-featured-grid .ch-theme-layout--sidebar-both .ch-theme-post-list--blog {
		grid-template-columns: 1fr !important;
	}
}


/* =========================================================
   v0.2.73 — Rumble thumbnail + Blog rail gap cleanup
   ========================================================= */

/*
 * The Blog sidebars are collections of widget cards, so the generic outer
 * sidebar "card" was creating an unnecessary inset/gap around the whole rail.
 * CommunityHub social-page rails are untouched.
 */
.ch-theme-main--blog .ch-theme-sidebar,
.ch-theme-main--single .ch-theme-sidebar {
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	align-self: start !important;
}

.ch-theme-main--blog .ch-theme-sidebar > :first-child,
.ch-theme-main--single .ch-theme-sidebar > :first-child {
	margin-top: 0 !important;
}

.ch-theme-main--blog .ch-theme-sidebar > :last-child,
.ch-theme-main--single .ch-theme-sidebar > :last-child {
	margin-bottom: 0 !important;
}

@media (min-width: 1180px) {
	.ch-theme-main--blog .ch-theme-container,
	.ch-theme-main--single .ch-theme-container {
		width: calc(100vw - 32px) !important;
		max-width: 1900px !important;
	}
}


/* =========================================================
   v0.2.74 — Blog widget rail spacing normalization
   ========================================================= */

/*
 * Blog rails are independent widget stacks. Older global sidebar rules add
 * per-widget bottom margins, which causes the visible uneven gaps. Replace
 * that with one predictable rail gap and no child margins.
 */
.ch-theme-main--blog .ch-theme-sidebar,
.ch-theme-main--single .ch-theme-sidebar {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.ch-theme-main--blog .ch-theme-sidebar > .ch-theme-widget,
.ch-theme-main--single .ch-theme-sidebar > .ch-theme-widget,
.ch-theme-main--blog .ch-theme-sidebar > .widget,
.ch-theme-main--single .ch-theme-sidebar > .widget,
.ch-theme-main--blog .ch-theme-sidebar > section,
.ch-theme-main--single .ch-theme-sidebar > section {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.ch-theme-main--blog .ch-theme-sidebar > .ch-theme-widget:empty,
.ch-theme-main--single .ch-theme-sidebar > .ch-theme-widget:empty,
.ch-theme-main--blog .ch-theme-sidebar > .widget:empty,
.ch-theme-main--single .ch-theme-sidebar > .widget:empty {
	display: none !important;
}


/* =========================================================
   v0.2.75 — Blog left-rail alignment + wrapper fill
   ========================================================= */

/* Third-party widget wrappers must fill the Blog sidebar grid track. */
.ch-theme-main--blog .ch-theme-sidebar > *,
.ch-theme-main--single .ch-theme-sidebar > * {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* Pull the left rail inward toward the center content, mirroring the right rail. */
.ch-theme-main--blog .ch-theme-sidebar--left,
.ch-theme-main--single .ch-theme-sidebar--left {
	justify-self: end !important;
	align-items: stretch !important;
	margin-left: auto !important;
	margin-right: 0 !important;
}

.ch-theme-main--blog .ch-theme-sidebar--right,
.ch-theme-main--single .ch-theme-sidebar--right {
	justify-self: start !important;
	align-items: stretch !important;
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* Fixed-width content inside third-party widget wrappers should hug the center. */
.ch-theme-main--blog .ch-theme-sidebar--left > * > *,
.ch-theme-main--single .ch-theme-sidebar--left > * > * {
	margin-left: auto !important;
	margin-right: 0 !important;
}

.ch-theme-main--blog .ch-theme-sidebar--right > * > *,
.ch-theme-main--single .ch-theme-sidebar--right > * > * {
	margin-left: 0 !important;
	margin-right: auto !important;
}


/* =========================================================
   v0.2.80 — Trending / Most Discussed editorial treatment
   ========================================================= */

.ch-theme-blog-trending {
	position: relative;
	margin: 0 0 24px;
	padding: 20px;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 20%, var(--ch-theme-border));
	border-radius: 20px;
	background:
		linear-gradient(
			135deg,
			color-mix(in srgb, var(--ch-theme-blue) 5%, var(--ch-theme-card)) 0%,
			var(--ch-theme-card) 48%,
			color-mix(in srgb, var(--ch-theme-text) 2%, var(--ch-theme-card)) 100%
		);
	box-shadow: 0 12px 30px color-mix(in srgb, #000 8%, transparent);
}

.ch-theme-blog-trending::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: linear-gradient(
		180deg,
		var(--ch-theme-blue),
		color-mix(in srgb, var(--ch-theme-blue) 24%, transparent)
	);
	pointer-events: none;
}

.ch-theme-trending-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 17px;
	padding: 0 2px 16px;
	border-bottom: 1px solid color-mix(in srgb, var(--ch-theme-border) 72%, transparent);
}

.ch-theme-trending-heading-copy {
	min-width: 0;
}

.ch-theme-trending-kicker {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 4px;
	color: var(--ch-theme-blue);
	font-size: .72rem;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.ch-theme-trending-pulse {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--ch-theme-blue);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--ch-theme-blue) 13%, transparent);
}

.ch-theme-trending-heading-copy h2 {
	margin: 0;
	font-size: clamp(1.35rem, 1.7vw, 1.65rem);
	line-height: 1.1;
	letter-spacing: -.02em;
}

.ch-theme-trending-heading-copy p {
	margin: 5px 0 0;
	color: var(--ch-theme-muted);
	font-size: .86rem;
	line-height: 1.35;
}

.ch-theme-trending-header-badge {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	padding: 7px 10px;
	border: 1px solid color-mix(in srgb, var(--ch-theme-blue) 30%, var(--ch-theme-border));
	border-radius: 999px;
	background: color-mix(in srgb, var(--ch-theme-blue) 8%, var(--ch-theme-card));
	color: var(--ch-theme-blue);
	font-size: .68rem;
	font-weight: 850;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ch-theme-trending-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.ch-theme-trending-item {
	position: relative;
	display: grid;
	grid-template-columns: 34px 84px minmax(0, 1fr) 22px;
	align-items: center;
	gap: 11px;
	min-width: 0;
	padding: 10px;
	border: 1px solid color-mix(in srgb, var(--ch-theme-border) 78%, transparent);
	border-radius: 14px;
	background: color-mix(in srgb, var(--ch-theme-card) 94%, transparent);
	color: var(--ch-theme-text);
	text-decoration: none;
	transition:
		transform .18s ease,
		border-color .18s ease,
		background .18s ease,
		box-shadow .18s ease;
}

.ch-theme-trending-item:hover,
.ch-theme-trending-item:focus-visible {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--ch-theme-blue) 45%, var(--ch-theme-border));
	background: color-mix(in srgb, var(--ch-theme-blue) 4%, var(--ch-theme-card));
	box-shadow: 0 9px 22px color-mix(in srgb, #000 8%, transparent);
	outline: none;
}

.ch-theme-trending-item.is-top-story {
	border-color: color-mix(in srgb, var(--ch-theme-blue) 38%, var(--ch-theme-border));
	background: color-mix(in srgb, var(--ch-theme-blue) 7%, var(--ch-theme-card));
}

.ch-theme-trending-rank {
	align-self: start;
	padding-top: 3px;
	color: color-mix(in srgb, var(--ch-theme-blue) 72%, var(--ch-theme-muted));
	font-size: .75rem;
	font-weight: 950;
	letter-spacing: .06em;
}

.ch-theme-trending-item.is-top-story .ch-theme-trending-rank {
	color: var(--ch-theme-blue);
}

.ch-theme-trending-thumb {
	position: relative;
	display: block;
	width: 84px;
	height: 62px;
	overflow: hidden;
	border-radius: 10px;
	background: color-mix(in srgb, var(--ch-theme-text) 5%, var(--ch-theme-card));
}

.ch-theme-trending-thumb img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.ch-theme-trending-thumb-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: var(--ch-theme-muted);
	font-size: 1.15rem;
	font-weight: 900;
}

.ch-theme-trending-copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.ch-theme-trending-category {
	margin-bottom: 3px;
	color: var(--ch-theme-blue);
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .045em;
	text-transform: uppercase;
}

.ch-theme-trending-title {
	display: -webkit-box;
	min-width: 0;
	overflow: hidden;
	color: var(--ch-theme-text);
	font-size: .92rem;
	font-weight: 800;
	line-height: 1.25;
	white-space: normal;
	text-overflow: initial;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ch-theme-trending-meta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 5px;
	color: var(--ch-theme-muted);
	font-size: .72rem;
	font-weight: 650;
}

.ch-theme-trending-comment-icon {
	position: relative;
	display: inline-block;
	width: 13px;
	height: 10px;
	border: 1.5px solid currentColor;
	border-radius: 4px;
	opacity: .8;
}

.ch-theme-trending-comment-icon::after {
	content: "";
	position: absolute;
	left: 2px;
	bottom: -4px;
	width: 4px;
	height: 4px;
	border-left: 1.5px solid currentColor;
	transform: skewY(-35deg);
}

.ch-theme-trending-arrow {
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	color: var(--ch-theme-muted);
	font-size: .95rem;
	transition:
		color .18s ease,
		transform .18s ease,
		background .18s ease;
}

.ch-theme-trending-item:hover .ch-theme-trending-arrow,
.ch-theme-trending-item:focus-visible .ch-theme-trending-arrow {
	color: var(--ch-theme-blue);
	background: color-mix(in srgb, var(--ch-theme-blue) 10%, transparent);
	transform: translateX(2px);
}

@media (max-width: 980px) {
	.ch-theme-trending-list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.ch-theme-blog-trending {
		padding: 16px;
		border-radius: 17px;
	}

	.ch-theme-trending-header {
		align-items: flex-start;
		margin-bottom: 12px;
		padding-bottom: 13px;
	}

	.ch-theme-trending-header-badge {
		display: none;
	}

	.ch-theme-trending-heading-copy p {
		font-size: .8rem;
	}

	.ch-theme-trending-item {
		grid-template-columns: 26px 72px minmax(0, 1fr);
		gap: 9px;
		padding: 9px;
	}

	.ch-theme-trending-thumb {
		width: 72px;
		height: 54px;
	}

	.ch-theme-trending-arrow {
		display: none;
	}
}


/* =========================================================
   v0.2.81 — Blog mobile: desktop widget rails must not squeeze feed
   ========================================================= */
@media (max-width: 1024px) {
	.ch-theme-main--blog .ch-theme-container {
		display: block !important;
		width: min(100% - 20px, 760px) !important;
		max-width: 760px !important;
		margin-inline: auto !important;
	}

	.ch-theme-main--blog .ch-theme-container > .ch-theme-sidebar {
		display: none !important;
	}

	.ch-theme-main--blog .ch-theme-content-wrap,
	.ch-theme-main--blog .ch-theme-blog-wrap,
	.ch-theme-main--blog .ch-theme-post-list--blog {
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		margin-inline: 0 !important;
	}

	.ch-theme-main--blog .ch-theme-post-list--blog {
		grid-template-columns: 1fr !important;
	}

	.ch-theme-main--blog .ch-theme-blog-trending {
		max-width: 100% !important;
	}

	.ch-theme-main--blog .ch-theme-blog-categories {
		max-width: 100% !important;
		overflow-x: auto !important;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.ch-theme-main--blog .ch-theme-blog-categories::-webkit-scrollbar {
		display: none;
	}
}


/* =========================================================
   v0.2.82 — myCRED earned-point notices above mobile header
   ========================================================= */
/*
 * CommunityHub's approved mobile header/dropdowns use very high stacking
 * layers. Raise only transient myCRED notices; do not change header geometry.
 */
#mycred-notifications,
#mycred-notice,
.mycred-notifications,
.mycred-notification,
.mycred-notice,
.mycred-toast,
.mycred-snackbar,
[class*="mycred"][class*="notice"],
[class*="mycred"][class*="notification"]{
	z-index:2147483000!important;
}


/* =========================================================
   v0.2.84 — Community navigation placement & Back to Top
   ========================================================= */
@media (min-width:783px){
	.ch-theme-community-bar:not(.ch-theme-community-bar--desktop){display:none!important}
	body.ch-community-bar-bottom-desktop{padding-bottom:68px}
}
@media (max-width:782px){
	.ch-theme-community-bar:not(.ch-theme-community-bar--mobile){display:none!important}
	body.ch-community-bar-bottom-mobile{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
}

.ch-theme-community-bar--top{
	max-height:76px;
	opacity:1;
	overflow:hidden;
	transition:max-height .22s ease,opacity .18s ease,border-color .18s ease
}
.ch-theme-community-bar--top.is-scroll-hidden{
	max-height:0!important;
	opacity:0;
	border-top-color:transparent!important;
	border-bottom-color:transparent!important;
	pointer-events:none
}

.ch-theme-community-bar--bottom{
	position:fixed;
	left:0;right:0;bottom:0;
	z-index:950;
	padding-bottom:env(safe-area-inset-bottom);
	border-top:1px solid rgba(217,227,240,.92);
	border-bottom:0;
	background:color-mix(in srgb,var(--ch-theme-surface) 94%,transparent);
	box-shadow:0 -10px 28px rgba(15,23,42,.11);
	backdrop-filter:blur(16px);
	-webkit-backdrop-filter:blur(16px);
	transform:translateY(0);
	opacity:1;
	transition:transform .22s ease,opacity .18s ease
}
.ch-theme-community-bar--bottom.is-scroll-hidden{
	transform:translateY(115%);
	opacity:0;
	pointer-events:none
}
.ch-theme-community-bar--bottom .ch-theme-header-inner--nav{
	min-height:58px;
	padding-top:7px;
	padding-bottom:7px
}
.ch-theme-community-bar--bottom .ch-theme-menu-list--community,
.ch-theme-community-bar--bottom .ch-theme-community-nav{
	flex-wrap:nowrap;
	overflow-x:auto;
	scrollbar-width:none;
	-webkit-overflow-scrolling:touch
}
.ch-theme-community-bar--bottom .ch-theme-menu-list--community::-webkit-scrollbar,
.ch-theme-community-bar--bottom .ch-theme-community-nav::-webkit-scrollbar{display:none}
@media(max-width:782px){
	.ch-theme-community-bar--bottom .ch-theme-header-inner--nav{
		width:100%!important;
		padding-left:8px!important;
		padding-right:8px!important
	}
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community,
	.ch-theme-community-bar--bottom .ch-theme-community-nav{
		justify-content:flex-start;
		gap:6px
	}
	.ch-theme-community-bar--bottom .ch-theme-nav-pill,
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a{
		min-height:42px;
		padding:8px 11px;
		font-size:.82rem
	}
}

.ch-theme-back-to-top{
	position:fixed!important;
	z-index:940;
	width:var(--ch-btt-size);
	height:var(--ch-btt-size);
	bottom:var(--ch-btt-bottom);
	display:flex;
	align-items:center;
	justify-content:center;
	padding:0!important;
	border:1px solid color-mix(in srgb,var(--ch-btt-bg-light) 78%,#000 8%)!important;
	background:var(--ch-btt-bg-light)!important;
	background-image:none!important;
	color:var(--ch-btt-icon-light)!important;
	box-shadow:0 12px 30px rgba(15,23,42,.2)!important;
	line-height:1;
	cursor:pointer;
	opacity:0;
	pointer-events:none;
	transform:translateY(12px) scale(.92);
	transition:opacity .2s ease,transform .2s ease,background .16s ease,box-shadow .16s ease
}
.ch-theme-back-to-top--right{right:var(--ch-btt-edge)}
.ch-theme-back-to-top--left{left:var(--ch-btt-edge)}
.ch-theme-back-to-top--circle{border-radius:50%!important}
.ch-theme-back-to-top--rounded{border-radius:15px!important}
.ch-theme-back-to-top--square{border-radius:5px!important}
.ch-theme-back-to-top--fade{transform:none}
.ch-theme-back-to-top--slide{transform:translateY(20px)}
.ch-theme-back-to-top.is-visible{
	opacity:1;
	pointer-events:auto;
	transform:translateY(0) scale(1)
}
.ch-theme-back-to-top:hover,
.ch-theme-back-to-top:focus-visible{
	background:color-mix(in srgb,var(--ch-btt-bg-light) 86%,#000)!important;
	color:var(--ch-btt-icon-light)!important;
	box-shadow:0 16px 36px rgba(15,23,42,.27)!important;
	transform:translateY(-2px) scale(1.03);
	outline:none!important
}
.ch-theme-back-to-top-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	font-size:calc(var(--ch-btt-size) * .48);
	font-weight:900;
	line-height:1
}
.ch-theme-back-to-top-custom-icon{
	display:block;
	width:58%;
	height:58%;
	object-fit:contain
}
html[data-ch-theme-mode="dark"] .ch-theme-back-to-top,
body.ch-theme-mode-dark .ch-theme-back-to-top{
	background:var(--ch-btt-bg-dark)!important;
	border-color:color-mix(in srgb,var(--ch-btt-bg-dark) 82%,#fff 12%)!important;
	color:var(--ch-btt-icon-dark)!important
}
html[data-ch-theme-mode="dark"] .ch-theme-back-to-top:hover,
html[data-ch-theme-mode="dark"] .ch-theme-back-to-top:focus-visible,
body.ch-theme-mode-dark .ch-theme-back-to-top:hover,
body.ch-theme-mode-dark .ch-theme-back-to-top:focus-visible{
	background:color-mix(in srgb,var(--ch-btt-bg-dark) 84%,#fff)!important;
	color:var(--ch-btt-icon-dark)!important
}
@media(min-width:783px){
	body.ch-community-bar-bottom-desktop .ch-theme-back-to-top{bottom:calc(var(--ch-btt-bottom) + 66px)}
	.ch-theme-back-to-top:not(.ch-theme-back-to-top--desktop){display:none!important}
}
@media(max-width:782px){
	body.ch-community-bar-bottom-mobile .ch-theme-back-to-top{bottom:calc(var(--ch-btt-bottom) + 64px + env(safe-area-inset-bottom))}
	.ch-theme-back-to-top:not(.ch-theme-back-to-top--mobile){display:none!important}
}
@media(prefers-reduced-motion:reduce){
	.ch-theme-community-bar,.ch-theme-back-to-top{transition:none!important}
}


/* =========================================================
   v0.2.85 — Native-style Community bottom bar enhancements
   ========================================================= */
.ch-theme-nav-pill,
.ch-theme-menu-list--community > li > a{
	position:relative;
}
.ch-theme-nav-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:18px;
	height:18px;
	padding:0 5px;
	margin-left:3px;
	border-radius:999px;
	background:#dc2626;
	color:#fff!important;
	font-size:10px;
	font-weight:800;
	line-height:1;
	box-shadow:0 0 0 2px var(--ch-theme-surface);
}
.ch-theme-community-bar--bottom.has-center-action .ch-theme-header-inner--nav{
	padding-left:84px!important;
	padding-right:84px!important;
}
.ch-theme-community-center-action{
	position:absolute;
	left:50%;
	top:0;
	transform:translate(-50%,-32%);
	z-index:3;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	width:66px;
	height:66px;
	border-radius:50%;
	border:4px solid var(--ch-theme-surface);
	background:var(--ch-theme-accent,#0080ff);
	color:#fff!important;
	text-decoration:none!important;
	box-shadow:0 12px 26px rgba(15,23,42,.24);
}
.ch-theme-community-center-action:hover,
.ch-theme-community-center-action:focus-visible{
	color:#fff!important;
	transform:translate(-50%,-36%) scale(1.035);
	outline:none;
}
.ch-theme-community-center-action-icon{
	font-size:27px;
	font-weight:900;
	line-height:.85;
}
.ch-theme-community-center-action-label{
	margin-top:4px;
	font-size:9px;
	font-weight:800;
	line-height:1;
	white-space:nowrap;
}
@media(max-width:782px){
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-nav-label{
		display:none!important;
	}
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-nav-pill,
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-menu-list--community>li>a{
		min-width:50px;
		min-height:46px;
		padding:8px 10px;
		justify-content:center;
	}
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-nav-icon{
		font-size:20px;
	}
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-nav-badge{
		position:absolute;
		top:3px;
		right:3px;
		margin:0;
	}
}

/* Back-to-top progress ring. */
.ch-theme-back-to-top--progress::before{
	content:"";
	position:absolute;
	inset:-5px;
	border-radius:inherit;
	padding:3px;
	background:conic-gradient(var(--ch-btt-progress-light) var(--ch-btt-progress,0%),rgba(255,255,255,.18) 0);
	-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
	-webkit-mask-composite:xor;
	mask-composite:exclude;
	pointer-events:none;
}
html[data-ch-theme-mode="dark"] .ch-theme-back-to-top--progress::before,
body.ch-theme-mode-dark .ch-theme-back-to-top--progress::before{
	background:conic-gradient(var(--ch-btt-progress-dark) var(--ch-btt-progress,0%),rgba(255,255,255,.15) 0);
}


/* v0.2.86 — Back to Top live-readiness hotfix */
.ch-theme-back-to-top{isolation:isolate}
.ch-theme-back-to-top-icon{
	position:relative;
	z-index:2;
	color:inherit!important;
	-webkit-text-fill-color:currentColor!important
}
.ch-theme-back-to-top-icon svg{
	display:block!important;
	width:56%!important;
	height:56%!important;
	fill:currentColor!important;
	stroke:none!important;
	overflow:visible!important;
	opacity:1!important;
	visibility:visible!important;
	pointer-events:none!important
}
.ch-theme-back-to-top.is-visible{visibility:visible!important}

/* =========================================================
   v0.2.87 — Adult/premium Community navigation polish
   ========================================================= */
.ch-theme-community-bar .ch-theme-nav-icon{
	display:inline-flex!important;align-items:center!important;justify-content:center!important;width:20px!important;height:20px!important;flex:0 0 20px!important;font-size:0!important
}
.ch-theme-community-bar .ch-theme-nav-icon svg{display:block!important;width:19px!important;height:19px!important;color:currentColor!important}
.ch-theme-community-bar .ch-theme-nav-pill,
.ch-theme-community-bar .ch-theme-menu-list--community>li>a{
	gap:7px!important;border-radius:10px!important;font-size:13px!important;font-weight:650!important;letter-spacing:-.01em!important;line-height:1.15!important;text-transform:none!important
}
.ch-theme-community-bar--bottom .ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a{
	background:transparent!important;border-color:transparent!important;box-shadow:none!important
}
.ch-theme-community-bar--bottom .ch-theme-nav-pill:hover,
.ch-theme-community-bar--bottom .ch-theme-nav-pill:focus-visible,
.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a:hover,
.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a:focus-visible{
	background:color-mix(in srgb,var(--ch-theme-accent,#0080ff) 8%,transparent)!important
}
.ch-theme-community-bar--bottom .ch-theme-nav-pill.is-active,
.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li.current-menu-item>a{
	background:color-mix(in srgb,var(--ch-theme-accent,#0080ff) 10%,transparent)!important;color:var(--ch-theme-accent,#0080ff)!important
}
.ch-theme-community-bar--bottom.has-center-action .ch-theme-header-inner--nav{padding-left:10px!important;padding-right:10px!important}
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3),
.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community>li:nth-child(3){margin-left:82px!important}
.ch-theme-community-center-action{width:60px!important;height:60px!important;border-width:3px!important;box-shadow:0 10px 24px rgba(15,23,42,.22)!important}
.ch-theme-community-center-action-icon{font-size:25px!important;font-weight:600!important}
.ch-theme-community-center-action-label{font-size:8px!important;font-weight:750!important;letter-spacing:-.01em!important}
@media(max-width:782px){
	.ch-theme-community-bar--bottom .ch-theme-nav-label{font-size:10.5px!important;font-weight:650!important}
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-nav-icon{width:22px!important;height:22px!important;flex-basis:22px!important}
	.ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-nav-icon svg{width:21px!important;height:21px!important}
	.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3),
	.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community>li:nth-child(3){margin-left:74px!important}
}

/* v0.2.88 — Back to Top independent runtime */
.ch-theme-back-to-top{z-index:2147482500!important;visibility:visible}
.ch-theme-back-to-top:not(.is-visible){opacity:0!important;pointer-events:none!important}
.ch-theme-back-to-top.is-visible{display:flex!important;opacity:1!important;pointer-events:auto!important;visibility:visible!important}

/* v0.2.89 — center-slot navigation + integration quick actions */
.ch-theme-community-bar--bottom .ch-theme-community-nav{display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;width:100%!important;overflow-x:auto!important}.ch-theme-community-bar--bottom .ch-theme-nav-pill{flex:0 0 auto!important;min-width:82px!important;justify-content:center!important;padding:8px 10px!important}.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3){margin-left:0!important}.ch-theme-nav-center-spacer{display:block!important;flex:0 0 78px!important;width:78px!important;min-width:78px!important;height:1px!important}.ch-theme-community-center-action{left:50%!important;z-index:8!important}.ch-theme-messages-counter{position:absolute;top:2px;right:5px}.ch-theme-messages-counter .better-messages-unread-counter,.ch-theme-header-message-badge .better-messages-unread-counter{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:17px!important;height:17px!important;padding:0 4px!important;border-radius:999px!important;background:#dc2626!important;color:#fff!important;font-size:9px!important;font-weight:900!important}.ch-theme-header-quick-actions{display:inline-flex;align-items:center;gap:6px}.ch-theme-header-icon-button{position:relative;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;padding:0!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:50%!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#182230)!important;text-decoration:none!important}.ch-theme-header-icon-button>span:first-child,.ch-theme-header-icon-button svg{display:flex;width:18px;height:18px}.ch-theme-header-icon-badge,.ch-theme-header-message-badge{position:absolute;top:-4px;right:-4px;z-index:2}.ch-theme-header-icon-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:900}@media(max-width:1040px){.ch-theme-community-bar--bottom .ch-theme-nav-pill{min-width:72px!important}.ch-theme-nav-center-spacer{flex-basis:72px!important;width:72px!important;min-width:72px!important}}@media(max-width:782px){.ch-theme-community-bar--bottom .ch-theme-community-nav{justify-content:flex-start!important}.ch-theme-community-bar--bottom .ch-theme-nav-pill{min-width:58px!important;padding:7px!important}.ch-theme-nav-center-spacer{flex-basis:68px!important;width:68px!important;min-width:68px!important}.ch-theme-header-icon-button{width:34px!important;height:34px!important}}


/* =========================================================
   v0.2.91 — async notification popup
   Critical rule: no notification content is rendered in the
   header/navigation PHP path.
   ========================================================= */
.ch-theme-nav-notification-trigger{
	font:inherit!important;
	cursor:pointer!important;
}
.ch-theme-notification-popup{
	position:fixed;
	z-index:2147482600;
	max-height:min(520px,72vh);
	border:1px solid var(--ch-theme-border,#dbe3ec);
	border-radius:15px;
	background:var(--ch-theme-surface,#fff);
	box-shadow:0 18px 52px rgba(15,23,42,.25);
	overflow:hidden;
}
.ch-theme-notification-popup-inner{
	width:100%;
	max-height:inherit;
	overflow:auto;
}
.ch-theme-notification-popup-loading,
.ch-theme-notification-popup-fallback{
	padding:18px;
	color:var(--ch-theme-text,#182230);
	font-size:13px;
}
.ch-theme-notification-popup-fallback{
	display:grid;
	gap:8px;
}
.ch-theme-notification-popup-fallback strong{
	font-size:15px;
}
.ch-theme-notification-popup-fallback p{
	margin:0;
	color:var(--ch-theme-muted,#64748b);
}
.ch-theme-notification-popup-fallback a{
	display:inline-flex;
	width:max-content;
	min-height:36px;
	align-items:center;
	padding:7px 11px;
	border-radius:9px;
	background:var(--ch-theme-accent,#0080ff);
	color:#fff!important;
	font-size:12px;
	font-weight:800;
	text-decoration:none!important;
}
.ch-theme-notification-popup .ch-notification-bell{
	width:100%;
}
.ch-theme-notification-popup .ch-notification-dropdown{
	position:static!important;
	display:block!important;
	width:100%!important;
	max-width:none!important;
	max-height:none!important;
	margin:0!important;
	border:0!important;
	border-radius:0!important;
	box-shadow:none!important;
}
@media(max-width:782px){
	.ch-theme-notification-popup{
		left:10px!important;
		right:10px!important;
		width:auto!important;
		max-height:min(520px,68vh);
	}
}

/* v0.2.93 */
.ch-theme-nav-badge,.ch-theme-header-icon-badge,.ch-theme-messages-counter .better-messages-unread-counter,.ch-theme-header-message-badge .better-messages-unread-counter{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;min-width:18px!important;height:18px!important;padding:0 5px!important;border-radius:999px!important;background:#dc2626!important;color:#fff!important;font-size:10px!important;font-weight:900!important;line-height:18px!important}.ch-theme-header-message-badge:empty{display:none!important}button.ch-theme-nav-pill{appearance:none!important;color:var(--ch-theme-text)!important;font:inherit!important}.ch-theme-back-to-top{z-index:2147482400!important}@media(min-width:783px){.ch-theme-community-bar--bottom .ch-theme-menu-list--community,.ch-theme-community-bar--bottom .ch-theme-community-nav{display:flex!important;justify-content:center!important;gap:4px!important;width:100%!important;overflow:visible!important}.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),.ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{flex:1 1 0!important;min-width:84px!important;max-width:126px!important;margin:0!important}.ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,.ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{flex:0 0 84px!important;width:84px!important;min-width:84px!important;margin:0!important}.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community>li:nth-child(3),.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3){margin-left:0!important}.ch-theme-community-center-action-label{font-size:10px!important;font-weight:900!important}}.ch-theme-header-preview-popup{position:fixed;z-index:2147482700;max-height:min(540px,72vh);overflow:auto;border:1px solid var(--ch-theme-border,#dbe3ec);border-radius:15px;background:var(--ch-theme-surface,#fff);box-shadow:0 18px 52px rgba(15,23,42,.25)}.ch-theme-header-preview-fallback{padding:16px}


/* =========================================================
   v0.2.94 — Community bar layout / preview / badge stabilization
   ========================================================= */

/* Header + nav unread bubbles use exactly the same geometry. */
.ch-theme-header-icon-badge,
.ch-theme-header-message-badge,
.ch-theme-nav-badge,
.ch-theme-messages-counter{
	position:absolute!important;
	top:1px!important;
	right:2px!important;
	z-index:4!important;
	width:auto!important;
	min-width:18px!important;
	height:18px!important;
	margin:0!important;
	padding:0!important;
	border:0!important;
	border-radius:999px!important;
	background:transparent!important;
	line-height:18px!important;
}
.ch-theme-header-icon-badge,
.ch-theme-nav-badge,
.ch-theme-header-message-badge .better-messages-unread-counter,
.ch-theme-messages-counter .better-messages-unread-counter{
	display:inline-flex!important;
	align-items:center!important;
	justify-content:center!important;
	box-sizing:border-box!important;
	min-width:18px!important;
	height:18px!important;
	margin:0!important;
	padding:0 5px!important;
	border:0!important;
	border-radius:999px!important;
	background:#dc2626!important;
	color:#fff!important;
	box-shadow:0 0 0 2px var(--ch-theme-surface,#fff)!important;
	font-family:inherit!important;
	font-size:10px!important;
	font-weight:900!important;
	line-height:18px!important;
	letter-spacing:-.02em!important;
}
.ch-theme-header-message-badge:empty,
.ch-theme-messages-counter:empty{display:none!important}

/* POST owns a true center reservation; old nth-child nudges are neutralized. */
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3),
.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community>li:nth-child(3){
	margin-left:0!important;
}

@media(min-width:783px){
	.ch-theme-community-bar--bottom .ch-theme-header-inner--nav{
		width:min(100%,1240px)!important;
		max-width:1240px!important;
		padding:7px 18px!important;
	}
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community,
	.ch-theme-community-bar--bottom .ch-theme-community-nav{
		display:flex!important;
		align-items:center!important;
		justify-content:center!important;
		flex-wrap:nowrap!important;
		gap:4px!important;
		width:100%!important;
		overflow:visible!important;
	}
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),
	.ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
		flex:1 1 0!important;
		min-width:0!important;
		max-width:150px!important;
		margin:0!important;
	}
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a,
	.ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
		display:flex!important;
		align-items:center!important;
		justify-content:center!important;
		width:100%!important;
		min-width:0!important;
		min-height:46px!important;
		padding:7px 6px!important;
		white-space:nowrap!important;
	}
	.ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
	.ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{
		flex:0 0 92px!important;
		width:92px!important;
		min-width:92px!important;
		max-width:92px!important;
		margin:0!important;
		padding:0!important;
		pointer-events:none!important;
	}
	.ch-theme-community-center-action{
		width:64px!important;
		height:64px!important;
	}
	.ch-theme-community-center-action-label{
		font-size:10px!important;
		font-weight:900!important;
		letter-spacing:.05em!important;
	}
}

/* Mobile Community bar must remain visible and scroll safely if labels are wide. */
@media(max-width:782px){
	.ch-theme-community-bar.ch-theme-community-bar--mobile{
		display:block!important;
	}
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community,
	.ch-theme-community-bar--bottom .ch-theme-community-nav{
		display:flex!important;
		justify-content:flex-start!important;
		flex-wrap:nowrap!important;
		overflow-x:auto!important;
		overscroll-behavior-x:contain;
	}
	.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li,
	.ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
		flex:0 0 auto!important;
	}
}

/* Same-site Better Messages preview loads its real page lifecycle. */
.ch-theme-messages-preview-frame{
	display:block;
	width:100%;
	height:min(500px,68vh);
	border:0;
	background:var(--ch-theme-surface,#fff);
}
body.ch-theme-messages-preview-frame-page{
	padding-top:0!important;
	padding-bottom:0!important;
	margin:0!important;
}
body.ch-theme-messages-preview-frame-page .ch-theme-header,
body.ch-theme-messages-preview-frame-page .ch-theme-community-bar,
body.ch-theme-messages-preview-frame-page .ch-theme-back-to-top,
body.ch-theme-messages-preview-frame-page .ch-theme-footer,
body.ch-theme-messages-preview-frame-page footer{
	display:none!important;
}
body.ch-theme-messages-preview-frame-page #primary,
body.ch-theme-messages-preview-frame-page main{
	width:100%!important;
	max-width:none!important;
	margin:0!important;
	padding:8px!important;
}

/* Nav popup buttons visually remain ordinary Community nav items. */
button.ch-theme-nav-pill,
.ch-theme-nav-messages-trigger,
.ch-theme-nav-notification-trigger{
	appearance:none!important;
	-webkit-appearance:none!important;
	border:0!important;
	background:transparent!important;
	color:var(--ch-theme-text)!important;
	font:inherit!important;
}

/* =========================================================
   v0.2.95 — community nav popup parity + mobile bar stability
   ========================================================= */
.ch-theme-header-icon-badge,
.ch-theme-header-message-badge .better-messages-unread-counter,
.ch-theme-messages-counter .better-messages-unread-counter,
.ch-theme-nav-badge{
  min-width:18px!important;
  height:18px!important;
  padding:0 5px!important;
  line-height:18px!important;
  border-radius:999px!important;
  font-size:10px!important;
  font-weight:900!important;
}

.ch-theme-community-bar--bottom .ch-theme-menu-list--community,
.ch-theme-community-bar--bottom .ch-theme-community-nav{
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:6px!important;
  width:100%!important;
}

.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),
.ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-community-nav>button.ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-community-nav>a.ch-theme-nav-pill{
  flex:1 1 0!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
}

.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a,
.ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  width:100%!important;
  padding:8px 10px!important;
  text-align:center!important;
}

.ch-theme-community-bar--bottom .ch-theme-nav-label,
.ch-theme-community-bar--bottom .ch-theme-menu-list--community .ch-theme-nav-label{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
.ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{
  flex:0 0 82px!important;
  width:82px!important;
  min-width:82px!important;
  margin:0!important;
}

.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community>li:nth-child(3),
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3){
  margin-left:0!important;
}

.ch-theme-community-bar--mobile{
  display:block!important;
}

@media (max-width: 782px){
  .ch-theme-community-bar--bottom .ch-theme-header-inner--nav{padding-left:8px!important;padding-right:8px!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community,
  .ch-theme-community-bar--bottom .ch-theme-community-nav{gap:4px!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>button.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>a.ch-theme-nav-pill{flex:1 1 0!important;min-width:0!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{min-height:44px!important;padding:7px 6px!important}
  .ch-theme-community-bar--bottom .ch-theme-nav-label{font-size:10px!important}
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{flex:0 0 68px!important;width:68px!important;min-width:68px!important}
}


/* =========================================================
   v0.2.96 — mobile hamburger cleanup + widget button polish
   ========================================================= */
/* Community navigation must not appear inside the hamburger panel on mobile.
   The mobile/desktop Community bar is controlled separately. */
.ch-theme-menu-panel .ch-theme-community-menu,
.ch-theme-menu-panel .ch-theme-community-nav{
  display:none!important;
}

/* Right/left rail widget controls should feel polished and adult, not oversized. */
.ch-theme-sidebar .widget button,
.ch-theme-sidebar .widget input[type="submit"],
.ch-theme-sidebar .widget .button,
.ch-theme-sidebar .widget .wp-block-search__button,
.ch-theme-sidebar .widget form button,
.ch-theme-sidebar .ch-theme-widget button,
.ch-theme-sidebar .ch-theme-widget input[type="submit"],
.ch-theme-sidebar .ch-theme-widget .button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:0 16px!important;
  border-radius:14px!important;
  border:1px solid rgba(0,128,255,.18)!important;
  background:linear-gradient(180deg,#1490ff 0%, #0077ee 100%)!important;
  color:#ffffff!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1!important;
  box-shadow:0 10px 24px rgba(0,128,255,.18)!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.ch-theme-sidebar .widget button:hover,
.ch-theme-sidebar .widget input[type="submit"]:hover,
.ch-theme-sidebar .widget .button:hover,
.ch-theme-sidebar .widget .wp-block-search__button:hover,
.ch-theme-sidebar .widget form button:hover,
.ch-theme-sidebar .ch-theme-widget button:hover,
.ch-theme-sidebar .ch-theme-widget input[type="submit"]:hover,
.ch-theme-sidebar .ch-theme-widget .button:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 14px 30px rgba(0,128,255,.24)!important;
  filter:saturate(1.03)!important;
}
.ch-theme-sidebar .widget input[type="text"],
.ch-theme-sidebar .widget input[type="search"],
.ch-theme-sidebar .widget input[type="email"],
.ch-theme-sidebar .widget input[type="url"],
.ch-theme-sidebar .widget input[type="number"],
.ch-theme-sidebar .widget select,
.ch-theme-sidebar .ch-theme-widget input[type="text"],
.ch-theme-sidebar .ch-theme-widget input[type="search"],
.ch-theme-sidebar .ch-theme-widget input[type="email"],
.ch-theme-sidebar .ch-theme-widget input[type="url"],
.ch-theme-sidebar .ch-theme-widget input[type="number"],
.ch-theme-sidebar .ch-theme-widget select{
  min-height:44px!important;
  border-radius:14px!important;
  border:1px solid rgba(148,163,184,.34)!important;
  background:rgba(7,18,38,.22)!important;
  color:var(--ch-theme-text)!important;
  padding:0 14px!important;
  box-shadow:none!important;
}
.ch-theme-sidebar .widget .wp-block-search__inside-wrapper,
.ch-theme-sidebar .widget form[role="search"],
.ch-theme-sidebar .ch-theme-widget .wp-block-search__inside-wrapper,
.ch-theme-sidebar .ch-theme-widget form[role="search"]{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
/* Keep small circular action buttons from ballooning. */
.ch-theme-sidebar .widget .is-style-circle,
.ch-theme-sidebar .ch-theme-widget .is-style-circle,
.ch-theme-sidebar .widget button[aria-label],
.ch-theme-sidebar .ch-theme-widget button[aria-label]{
  min-width:42px!important;
  width:42px!important;
  padding:0!important;
}
/* Dark mode widget control tuning. */
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .widget input[type="text"],
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .widget input[type="search"],
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .widget input[type="email"],
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .widget select,
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .ch-theme-widget input[type="text"],
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .ch-theme-widget input[type="search"],
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .ch-theme-widget input[type="email"],
html[data-ch-theme-mode="dark"] .ch-theme-sidebar .ch-theme-widget select,
body.ch-theme-mode-dark .ch-theme-sidebar .widget input[type="text"],
body.ch-theme-mode-dark .ch-theme-sidebar .widget input[type="search"],
body.ch-theme-mode-dark .ch-theme-sidebar .widget input[type="email"],
body.ch-theme-mode-dark .ch-theme-sidebar .widget select,
body.ch-theme-mode-dark .ch-theme-sidebar .ch-theme-widget input[type="text"],
body.ch-theme-mode-dark .ch-theme-sidebar .ch-theme-widget input[type="search"],
body.ch-theme-mode-dark .ch-theme-sidebar .ch-theme-widget input[type="email"],
body.ch-theme-mode-dark .ch-theme-sidebar .ch-theme-widget select{
  background:rgba(15,23,42,.88)!important;
  border-color:#334155!important;
  color:#f8fafc!important;
}
@media (max-width:782px){
  .ch-theme-sidebar .widget button,
  .ch-theme-sidebar .widget input[type="submit"],
  .ch-theme-sidebar .widget .button,
  .ch-theme-sidebar .widget .wp-block-search__button,
  .ch-theme-sidebar .widget form button,
  .ch-theme-sidebar .ch-theme-widget button,
  .ch-theme-sidebar .ch-theme-widget input[type="submit"],
  .ch-theme-sidebar .ch-theme-widget .button{
    min-height:40px!important;
    padding:0 14px!important;
    border-radius:12px!important;
    font-size:13px!important;
  }
}


/* =========================================================
   v0.2.97 — deterministic bottom bar + POST-only action + widget search polish
   ========================================================= */
@media(min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community,
  .ch-theme-community-bar--bottom .ch-theme-community-nav{
    display:flex!important;align-items:center!important;justify-content:center!important;
    flex-wrap:nowrap!important;gap:8px!important;width:100%!important;overflow:visible!important
  }
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>button.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>a.ch-theme-nav-pill{
    flex:0 0 102px!important;min-width:102px!important;max-width:102px!important;margin:0!important
  }
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
    min-height:44px!important;padding:7px 8px!important;border-radius:12px!important
  }
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{
    flex:0 0 96px!important;width:96px!important;min-width:96px!important;max-width:96px!important
  }
}
.ch-theme-community-center-action{
  left:50%!important;bottom:7px!important;transform:translateX(-50%)!important;
  width:74px!important;height:44px!important;min-width:74px!important;min-height:44px!important;
  padding:0 14px!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:14px!important;
  background:linear-gradient(180deg,#168fff 0%,#0877e8 100%)!important;color:#fff!important;
  box-shadow:0 10px 26px rgba(0,104,218,.34)!important;text-decoration:none!important
}
.ch-theme-community-center-action:hover,.ch-theme-community-center-action:focus-visible{
  transform:translateX(-50%) translateY(-1px)!important;box-shadow:0 14px 30px rgba(0,104,218,.40)!important
}
.ch-theme-community-center-action-icon{display:none!important}
.ch-theme-community-center-action-label{margin:0!important;font-size:12px!important;font-weight:900!important;line-height:1!important;letter-spacing:.05em!important;color:#fff!important}

/* Identical unread badge geometry in header and Community bar. */
.ch-theme-header-icon-badge,
.ch-theme-header-message-badge .better-messages-unread-counter,
.ch-theme-nav-badge,
.ch-theme-messages-counter .better-messages-unread-counter{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;min-width:18px!important;height:18px!important;padding:0 5px!important;
  border:0!important;border-radius:999px!important;background:#dc2626!important;color:#fff!important;
  font:900 10px/18px inherit!important;letter-spacing:-.02em!important;box-shadow:0 0 0 2px var(--ch-theme-surface,#fff)!important
}
.ch-theme-header-icon-badge,.ch-theme-header-message-badge{top:-4px!important;right:-4px!important}
.ch-theme-nav-badge,.ch-theme-messages-counter{top:1px!important;right:3px!important}

/* Widget search controls: compact, deliberate, never oversized. */
.ch-theme-sidebar .wp-block-search__inside-wrapper,
.ch-theme-sidebar form[role="search"]{display:flex!important;align-items:stretch!important;gap:8px!important}
.ch-theme-sidebar .wp-block-search__input,
.ch-theme-sidebar form[role="search"] input[type="search"]{
  min-height:42px!important;height:42px!important;border-radius:12px!important;padding:0 13px!important
}
.ch-theme-sidebar .wp-block-search__button,
.ch-theme-sidebar form[role="search"] button,
.ch-theme-sidebar form[role="search"] input[type="submit"]{
  flex:0 0 auto!important;width:auto!important;min-width:72px!important;min-height:42px!important;height:42px!important;
  padding:0 14px!important;border-radius:12px!important;font-size:13px!important;font-weight:850!important;
  box-shadow:0 6px 15px rgba(0,128,255,.15)!important;transform:none!important
}
.ch-theme-sidebar .wp-block-search__button:hover,
.ch-theme-sidebar form[role="search"] button:hover,
.ch-theme-sidebar form[role="search"] input[type="submit"]:hover{transform:none!important;box-shadow:0 8px 18px rgba(0,128,255,.20)!important}

.ch-theme-header-preview-note{padding:10px 14px;border-top:1px solid var(--ch-theme-border,#dbe3ec);font-size:12px;color:var(--ch-theme-muted,#64748b)}

/* =========================================================
   v0.2.99 — balanced POST nav, one badge geometry, notification preview
   ========================================================= */

/* One shared unread badge box everywhere. Wrappers do not draw a second bubble. */
.ch-theme-header-message-badge,
.ch-theme-messages-counter{
  position:absolute!important;
  z-index:5!important;
  display:block!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:transparent!important;
  line-height:18px!important;
}
.ch-theme-header-icon-badge,
.ch-theme-nav-badge,
.ch-theme-header-message-badge .better-messages-unread-counter,
.ch-theme-messages-counter .better-messages-unread-counter{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:#dc2626!important;
  color:#fff!important;
  box-shadow:0 0 0 2px var(--ch-theme-surface,#101b2c)!important;
  font-family:inherit!important;
  font-size:9px!important;
  font-weight:900!important;
  line-height:18px!important;
  letter-spacing:0!important;
}
.ch-theme-header-icon-button{position:relative!important}
.ch-theme-header-icon-badge,
.ch-theme-header-message-badge{
  position:absolute!important;
  top:-4px!important;
  right:-4px!important;
}
.ch-theme-community-bar--bottom .ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a{position:relative!important}
.ch-theme-community-bar--bottom .ch-theme-nav-badge,
.ch-theme-community-bar--bottom .ch-theme-messages-counter{
  position:absolute!important;
  top:2px!important;
  left:calc(50% + 13px)!important;
  right:auto!important;
  transform:none!important;
}

/* Desktop: let the nav use the available width instead of chopping Community. */
@media(min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-header-inner--nav{
    width:min(100%,1180px)!important;
    max-width:1180px!important;
    padding:6px 18px!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community,
  .ch-theme-community-bar--bottom .ch-theme-community-nav{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex-wrap:nowrap!important;
    gap:6px!important;
    width:100%!important;
    overflow:visible!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
    flex:1 1 110px!important;
    min-width:92px!important;
    max-width:132px!important;
    margin:0!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    width:100%!important;
    min-height:44px!important;
    padding:6px 8px!important;
    overflow:visible!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-nav-label{
    display:inline!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{
    flex:0 0 82px!important;
    width:82px!important;
    min-width:82px!important;
    max-width:82px!important;
    margin:0!important;
  }
}

/* Raised POST action: smaller, intentional, with a create icon. */
.ch-theme-community-center-action{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  left:50%!important;
  bottom:5px!important;
  transform:translateX(-50%)!important;
  width:64px!important;
  height:58px!important;
  min-width:64px!important;
  min-height:58px!important;
  padding:5px 8px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#168fff 0%,#0877e8 100%)!important;
  color:#fff!important;
  box-shadow:0 9px 22px rgba(0,104,218,.30)!important;
}
.ch-theme-community-center-action-icon{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:18px!important;
  height:18px!important;
  color:#fff!important;
}
.ch-theme-community-center-action-icon svg{display:block!important;width:18px!important;height:18px!important}
.ch-theme-community-center-action-label{
  margin:0!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.04em!important;
}
.ch-theme-community-center-action:hover,
.ch-theme-community-center-action:focus-visible{
  transform:translateX(-50%) translateY(-1px)!important;
  box-shadow:0 12px 27px rgba(0,104,218,.38)!important;
}

/* Dedicated notifications preview: no profile shell, no iframe. */
.ch-theme-notification-popup{
  border:1px solid rgba(148,163,184,.28)!important;
  border-radius:16px!important;
  background:var(--ch-theme-surface,#101b2c)!important;
  box-shadow:0 24px 62px rgba(0,0,0,.36)!important;
  overflow:hidden!important;
}
.ch-theme-notification-preview-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 14px;border-bottom:1px solid rgba(148,163,184,.20)
}
.ch-theme-notification-preview-head strong{font-size:14px;font-weight:900;color:var(--ch-theme-text,#f8fafc)}
.ch-theme-notification-preview-head span{font-size:10px;font-weight:800;color:var(--ch-theme-muted,#94a3b8)}
.ch-theme-notification-preview-list{max-height:min(420px,58vh);overflow:auto;padding:5px}
.ch-theme-notification-preview-item{
  position:relative;display:flex;gap:10px;align-items:flex-start;padding:11px 10px;border-radius:10px;
  color:var(--ch-theme-text,#f8fafc)!important;text-decoration:none!important
}
.ch-theme-notification-preview-item:hover{background:rgba(128,160,200,.10)}
.ch-theme-notification-preview-item.is-unread{background:rgba(0,128,255,.08)}
.ch-theme-notification-preview-dot{width:7px;height:7px;flex:0 0 7px;margin-top:6px;border-radius:50%;background:transparent}
.ch-theme-notification-preview-item.is-unread .ch-theme-notification-preview-dot{background:#168fff}
.ch-theme-notification-preview-copy{display:grid;gap:4px;min-width:0}
.ch-theme-notification-preview-copy strong{font-size:12px;line-height:1.35;font-weight:800;color:inherit}
.ch-theme-notification-preview-copy small{font-size:10px;color:var(--ch-theme-muted,#94a3b8)}
.ch-theme-notification-preview-empty,
.ch-theme-notification-preview-loading,
.ch-theme-notification-preview-error{padding:18px;color:var(--ch-theme-text,#f8fafc)}
.ch-theme-notification-preview-error p{color:var(--ch-theme-muted,#94a3b8)}
.ch-theme-notification-preview-foot{padding:9px 10px 10px;border-top:1px solid rgba(148,163,184,.20)}
.ch-theme-notification-preview-foot a,
.ch-theme-notification-preview-error a{
  display:flex;align-items:center;justify-content:center;min-height:36px;padding:7px 11px;border-radius:9px;
  background:rgba(0,128,255,.12);color:#6eb6ff!important;font-size:11px;font-weight:900;text-decoration:none!important
}

/* Messages popup polish only; functionality remains Better Messages-owned. */
.ch-theme-header-preview-popup .ch-quick-preview-panel--messages{background:var(--ch-theme-surface,#101b2c)!important}
.ch-theme-header-preview-popup .ch-quick-preview-heading{min-height:46px!important;padding:12px 14px!important}
.ch-theme-header-preview-popup .ch-quick-preview-messages-app{height:min(455px,62vh)!important;overflow:auto!important}
.ch-theme-header-preview-popup .ch-quick-preview-messages-app .bp-messages-wrap{min-height:100%!important;background:transparent!important}

/* =========================================================
   v0.3.00 — final shared badges, balanced POST slot, quiet loaders
   ========================================================= */
.ch-theme-header-icon-badge,
.ch-theme-header-message-badge,
.ch-theme-nav-badge,
.ch-theme-messages-counter{
  position:absolute!important;
  z-index:8!important;
  display:block!important;
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
.ch-theme-unread-badge{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  background:#dc2626!important;
  color:#fff!important;
  font-family:inherit!important;
  font-size:9px!important;
  font-weight:900!important;
  line-height:18px!important;
  letter-spacing:0!important;
  box-shadow:0 0 0 2px var(--ch-theme-surface,#101b2c)!important;
}
.ch-theme-header-icon-badge,
.ch-theme-header-message-badge{top:-4px!important;right:-4px!important;left:auto!important}
.ch-theme-community-bar--bottom .ch-theme-nav-badge,
.ch-theme-community-bar--bottom .ch-theme-messages-counter{
  top:0!important;
  left:calc(50% + 10px)!important;
  right:auto!important;
}
@media(min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-header-inner--nav{width:min(100%,1240px)!important;max-width:1240px!important;padding:6px 18px!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community,
  .ch-theme-community-bar--bottom .ch-theme-community-nav{display:flex!important;align-items:center!important;justify-content:stretch!important;flex-wrap:nowrap!important;gap:6px!important;width:100%!important;overflow:visible!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item),
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{flex:var(--ch-nav-grow,1) 1 0!important;min-width:0!important;max-width:none!important;margin:0!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a,
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{min-width:0!important;width:100%!important;min-height:44px!important;padding:6px 7px!important;gap:6px!important;justify-content:center!important;overflow:visible!important}
  .ch-theme-community-bar--bottom .ch-theme-nav-label{display:inline!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;font-size:11px!important}
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer{flex:0 0 72px!important;width:72px!important;min-width:72px!important;max-width:72px!important;margin:0!important;padding:0!important}
}
.ch-theme-community-center-action{top:0!important;bottom:auto!important;transform:translate(-50%,-22%)!important;width:56px!important;min-width:56px!important;height:56px!important;min-height:56px!important;padding:5px!important;gap:2px!important;border:3px solid var(--ch-theme-surface,#101b2c)!important;border-radius:18px!important;background:linear-gradient(180deg,#1594ff,#0878e8)!important;box-shadow:0 9px 22px rgba(0,104,218,.28)!important}
.ch-theme-community-center-action:hover,.ch-theme-community-center-action:focus-visible{transform:translate(-50%,-25%)!important}
.ch-theme-community-center-action-icon{display:flex!important;width:16px!important;height:16px!important}
.ch-theme-community-center-action-icon svg{width:16px!important;height:16px!important}
.ch-theme-community-center-action-label{font-size:9px!important;line-height:1!important;letter-spacing:.045em!important}
.ch-theme-popup-skeleton{display:grid;gap:9px;padding:14px;min-height:150px;background:var(--ch-theme-surface,#101b2c)}
.ch-theme-popup-skeleton span{display:block;height:42px;border-radius:10px;background:linear-gradient(90deg,rgba(148,163,184,.08),rgba(148,163,184,.18),rgba(148,163,184,.08));background-size:220% 100%;animation:ch-popup-skeleton 1.15s ease-in-out infinite}
.ch-theme-popup-skeleton .ch-theme-popup-skeleton-title{height:18px;width:42%;border-radius:6px}
@keyframes ch-popup-skeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.ch-theme-popup-skeleton span{animation:none}}

/* =========================================================
   v0.3.01 — simplified Community bar: no message/notification
   duplication, Store + optional Custom button, stable POST slot
   ========================================================= */
@media (min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-header-inner--nav{
    width:min(100%,1160px)!important;
    max-width:1160px!important;
    padding:6px 14px!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-community-nav,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
    width:100%!important;
    overflow:visible!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item){
    flex:1 1 0!important;
    min-width:0!important;
    max-width:142px!important;
    margin:0!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    width:100%!important;
    min-height:44px!important;
    padding:6px 9px!important;
    border-radius:12px!important;
    white-space:nowrap!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer,
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item{
    flex:0 0 74px!important;
    width:74px!important;
    min-width:74px!important;
    max-width:74px!important;
    padding:0!important;
    margin:0!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-nav-label{
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
}

/* The raised POST control is already approved; preserve its visual treatment. */
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav>:nth-child(3),
.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community>li:nth-child(3){
  margin-left:0!important;
}

/* Store and custom buttons use exactly the same nav treatment as native items. */
.ch-theme-menu-item--store>a,
.ch-theme-menu-item--custom>a{
  color:inherit!important;
  text-decoration:none!important;
}

@media (max-width:782px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px!important;
    overflow-x:auto!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li:not(.ch-theme-nav-center-spacer-item){
    flex:0 0 auto!important;
    min-width:62px!important;
  }
}

/* =========================================================
   v0.3.02 — managed Nav Bar, invisible balance slots, search polish
   ========================================================= */
.ch-theme-community-nav[data-ch-balanced-nav="1"]{
  display:grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:minmax(82px,1fr)!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:6px!important;
  width:min(100%,1120px)!important;
  margin:0 auto!important;
  overflow:visible!important;
}
.ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
.ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer,
.ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder{
  min-width:0!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
}
.ch-theme-nav-balance-placeholder{
  display:block!important;
  visibility:hidden!important;
  pointer-events:none!important;
  min-height:46px!important;
}
.ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer{
  display:block!important;
  visibility:hidden!important;
  min-height:46px!important;
}
.ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  padding:7px 8px!important;
}
.ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
.ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-pill:first-child .ch-theme-nav-label{
  overflow:visible!important;
  text-overflow:clip!important;
}

/* One actual badge element for header quick actions. */
.ch-theme-header-icon-button{position:relative!important}
.ch-theme-header-icon-button>.ch-theme-unread-badge.ch-theme-header-unread-badge{
  position:absolute!important;
  top:-5px!important;
  right:-5px!important;
  z-index:8!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  min-width:18px!important;
  height:18px!important;
  padding:0 5px!important;
  margin:0!important;
  border:0!important;
  border-radius:999px!important;
  background:#dc2626!important;
  color:#fff!important;
  box-shadow:0 0 0 2px var(--ch-theme-surface,#fff)!important;
  font-family:inherit!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:18px!important;
}

/* Search/category widgets: compact, balanced action controls. */
.ch-theme-sidebar .wp-block-search__inside-wrapper,
.ch-theme-sidebar form[role="search"],
.ch-theme-sidebar .widget_product_search form{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
}
.ch-theme-sidebar .wp-block-search__button,
.ch-theme-sidebar form[role="search"] button,
.ch-theme-sidebar .widget_product_search button,
.ch-theme-sidebar .widget_product_search input[type="submit"]{
  min-width:70px!important;
  width:auto!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 14px!important;
  border-radius:12px!important;
  font-size:12px!important;
  font-weight:850!important;
  line-height:1!important;
  box-shadow:0 6px 16px rgba(0,128,255,.16)!important;
}
.ch-theme-sidebar .wp-block-search__input,
.ch-theme-sidebar form[role="search"] input[type="search"],
.ch-theme-sidebar .widget_product_search input[type="search"]{
  min-width:0!important;
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 12px!important;
  border-radius:12px!important;
  font-size:13px!important;
}

@media(max-width:782px){
  .ch-theme-community-nav[data-ch-balanced-nav="1"]{
    grid-auto-columns:minmax(56px,1fr)!important;
    gap:3px!important;
    width:100%!important;
  }
  .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
  .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer,
  .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder{
    min-height:44px!important;
  }
  .ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{font-size:10px!important}
}

/* =========================================================
   v0.3.03 — tighter balanced nav, widget search polish, message menu layering
   ========================================================= */
/* Keep the bar compact; invisible balance slots preserve POST centering without stretching every item. */
@media (min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-header-inner--nav{max-width:1040px!important;width:min(1040px,calc(100% - 24px))!important;padding-left:10px!important;padding-right:10px!important}
  .ch-theme-community-bar--bottom .ch-theme-community-nav{display:flex!important;align-items:center!important;justify-content:center!important;gap:2px!important;width:100%!important}
  .ch-theme-community-bar--bottom .ch-theme-community-nav>.ch-theme-nav-pill{flex:0 1 102px!important;width:102px!important;max-width:102px!important;min-width:76px!important;padding:7px 8px!important}
  .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer,
  .ch-theme-community-bar--bottom .ch-theme-nav-balance-placeholder{flex:0 0 72px!important;width:72px!important;min-width:72px!important;max-width:72px!important}
}

/* Search widgets: input owns the row; Search is a compact supporting action. */
.ch-theme-sidebar .widget_search .wp-block-search__inside-wrapper,
.ch-theme-sidebar .widget_search form,
.ch-theme-sidebar .widget .wp-block-search__inside-wrapper,
.ch-theme-sidebar .ch-theme-widget .wp-block-search__inside-wrapper{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important;gap:8px!important;width:100%!important}
.ch-theme-sidebar .widget_search input[type="search"],
.ch-theme-sidebar .widget .wp-block-search__input,
.ch-theme-sidebar .ch-theme-widget .wp-block-search__input{width:100%!important;min-width:0!important;min-height:44px!important;height:44px!important;padding:0 14px!important;border-radius:12px!important;font-size:14px!important}
.ch-theme-sidebar .widget_search button,
.ch-theme-sidebar .widget .wp-block-search__button,
.ch-theme-sidebar .ch-theme-widget .wp-block-search__button{width:auto!important;min-width:72px!important;height:44px!important;min-height:44px!important;padding:0 14px!important;border-radius:12px!important;font-size:13px!important;font-weight:800!important;line-height:1!important}

/* Better Messages contextual menus must appear above the CommunityHub preview shell. */
.ch-theme-header-preview-popup{overflow:visible!important}
.ch-theme-header-preview-popup .ch-theme-header-preview-inner{overflow:visible!important}
.ch-theme-header-preview-popup .bp-messages-wrap,
.ch-theme-header-preview-popup .better-messages-list{overflow:visible!important}
.ch-theme-header-preview-popup [class*="dropdown"],
.ch-theme-header-preview-popup [class*="popover"],
.ch-theme-header-preview-popup [class*="context-menu"],
.ch-theme-header-preview-popup [class*="actions-menu"],
.ch-theme-header-preview-popup [class*="bm-menu"]{z-index:2147483646!important}

/* =========================================================
   v0.3.04 LIVE readiness — readability + integration bridge
   ========================================================= */
/* CommunityHub-owned surfaces must maintain readable contrast. */
body.ch-theme .ch-composer,
body.ch-theme .ch-activity-card,
body.ch-theme .ch-comment-bubble,
body.ch-theme .ch-profile-card,
body.ch-theme .ch-profile-section,
body.ch-theme .ch-bookmarks-header,
body.ch-theme .ch-bookmarks-empty,
body.ch-theme .ch-notifications-header,
body.ch-theme .ch-member-directory,
body.ch-theme .ch-group-card,
body.ch-theme .ch-forum-card{
  color:var(--ch-theme-text,#182230);
}
body.ch-theme .ch-composer input,
body.ch-theme .ch-composer textarea,
body.ch-theme .ch-composer select,
body.ch-theme .ch-profile-section input,
body.ch-theme .ch-profile-section textarea,
body.ch-theme .ch-profile-section select{
  color:var(--ch-theme-text,#182230)!important;
  background:var(--ch-theme-surface,#fff)!important;
  border-color:var(--ch-theme-border,#dbe3ec)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-activity-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment-bubble,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-section,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-bookmarks-empty,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-notifications-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-member-directory,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-group-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-card,
body.ch-theme-mode-dark .ch-composer,
body.ch-theme-mode-dark .ch-activity-card,
body.ch-theme-mode-dark .ch-comment-bubble,
body.ch-theme-mode-dark .ch-profile-card,
body.ch-theme-mode-dark .ch-profile-section{
  color:#f8fafc!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer input,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer textarea,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer select,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-section input,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-section textarea,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-section select,
body.ch-theme-mode-dark .ch-composer input,
body.ch-theme-mode-dark .ch-composer textarea,
body.ch-theme-mode-dark .ch-composer select{
  color:#f8fafc!important;
  background:#0f172a!important;
  border-color:#334155!important;
}
/* Better Messages: preserve its app UI while keeping menus above CommunityHub popup shells. */
.ch-theme-header-preview-popup .bp-messages-wrap,
.ch-theme-header-preview-popup .better-messages-list,
.ch-theme-header-preview-popup .better-messages-conversation,
.ch-theme-header-preview-popup .better-messages-chat-room{
  color:inherit;
}
.bp-messages-wrap .bm-dropdown,
.bp-messages-wrap .bm-dropdown-content,
.bp-messages-wrap .bm-context-menu,
.bp-messages-wrap .bm-popover,
.better-messages-list .bm-dropdown,
.better-messages-list .bm-context-menu{
  z-index:2147483646!important;
}
/* PMPro owns membership UI/colors tonight; do not force CommunityHub blue over its controls. */
body.ch-theme .pmpro,
body.ch-theme .pmpro_card,
body.ch-theme .pmpro_section,
body.ch-theme .pmpro_form{
  font-family:inherit;
}


/* =========================================================
   v0.3.05 — exact WP Search block + Better Messages layering
   ========================================================= */
#block-233.widget_search .wp-block-search,
.ch-theme-sidebar .widget_search .wp-block-search{display:grid!important;gap:9px!important;width:100%!important}
#block-233.widget_search .wp-block-search__label,
.ch-theme-sidebar .widget_search .wp-block-search__label{display:block!important;margin:0!important;color:var(--ch-theme-text,#182230)!important;font-size:14px!important;font-weight:800!important;line-height:1.2!important}
#block-233.widget_search .wp-block-search__inside-wrapper,
.ch-theme-sidebar .widget_search .wp-block-search__inside-wrapper{display:grid!important;grid-template-columns:minmax(0,1fr) 82px!important;align-items:stretch!important;gap:10px!important;width:100%!important}
#block-233.widget_search .wp-block-search__input,
.ch-theme-sidebar .widget_search .wp-block-search__input{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:48px!important;min-height:48px!important;padding:0 16px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:13px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#182230)!important;font-size:14px!important;line-height:48px!important;box-shadow:inset 0 1px 1px rgba(15,23,42,.03)!important}
#block-233.widget_search .wp-block-search__input::placeholder,
.ch-theme-sidebar .widget_search .wp-block-search__input::placeholder{color:var(--ch-theme-muted,#7a8798)!important;opacity:1!important}
#block-233.widget_search .wp-block-search__button,
.ch-theme-sidebar .widget_search .wp-block-search__button{box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:82px!important;min-width:82px!important;height:48px!important;min-height:48px!important;margin:0!important;padding:0 17px!important;border:1px solid rgba(0,128,255,.35)!important;border-radius:13px!important;background:linear-gradient(180deg,#1497ff 0%,#087fea 100%)!important;color:#fff!important;font-size:13px!important;font-weight:900!important;line-height:1!important;letter-spacing:0!important;box-shadow:0 7px 18px rgba(0,128,255,.2)!important}
#block-233.widget_search .wp-block-search__button:hover,
.ch-theme-sidebar .widget_search .wp-block-search__button:hover{transform:translateY(-1px)!important;box-shadow:0 10px 24px rgba(0,128,255,.25)!important}
html[data-ch-theme-mode="dark"] #block-233.widget_search .wp-block-search__input,
body.ch-theme-mode-dark #block-233.widget_search .wp-block-search__input{background:#0b1627!important;border-color:#2d4260!important;color:#f8fafc!important}

/* Better Messages menus may be portaled outside the CommunityHub popup, so raise both local and body-level menu layers. */
.ch-theme-header-preview-popup,
.ch-theme-header-preview-popup .ch-theme-header-preview-inner,
.ch-theme-header-preview-popup .ch-quick-preview-messages-app,
.ch-theme-header-preview-popup .bp-messages-wrap,
.ch-theme-header-preview-popup .better-messages-list{overflow:visible!important}
body .bm-dropdown,
body .bm-dropdown-content,
body .bm-popover,
body .bm-context-menu,
body .bm-menu,
body .bpbm-dropdown-menu,
body [class*="better-messages"][class*="dropdown"],
body [class*="better-messages"][class*="popover"],
body [class*="better-messages"][class*="menu"]{z-index:2147483647!important}


/* =========================================================
   v0.3.07 — exact Search geometry + native Better Messages presentation
   ========================================================= */
#block-233.widget_search form.wp-block-search,
.widget_search form.wp-block-search{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
#block-233.widget_search .wp-block-search__label,
.widget_search .wp-block-search__label{
  display:block!important;
  position:static!important;
  float:none!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0 0 10px!important;
  padding:0!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-height:1.3!important;
  text-align:left!important;
}
#block-233.widget_search .wp-block-search__inside-wrapper,
.widget_search .wp-block-search__inside-wrapper{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 88px!important;
  align-items:stretch!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
}
#block-233.widget_search .wp-block-search__input,
.widget_search .wp-block-search__input{
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  min-height:48px!important;
  padding:0 16px!important;
  border-radius:13px!important;
}
#block-233.widget_search .wp-block-search__button,
.widget_search .wp-block-search__button{
  width:88px!important;
  min-width:88px!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0 16px!important;
  border-radius:13px!important;
}

/* Keep CommunityHub's shell above normal page/feed content, but below plugin menus. */
.ch-theme-header-preview-popup{
  z-index:100000!important;
  isolation:auto!important;
}
.ch-theme-header-preview-popup.is-messages-preview{
  overflow:visible!important;
  background:#fff!important;
  color:#111827!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-theme-header-preview-inner,
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages,
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-messages-app{
  overflow:visible!important;
  background:#fff!important;
  color:#111827!important;
}
/* Do not repaint Better Messages internals. Its own skin remains authoritative. */
.ch-theme-header-preview-popup.is-messages-preview .bp-messages-wrap,
.ch-theme-header-preview-popup.is-messages-preview .better-messages-list,
.ch-theme-header-preview-popup.is-messages-preview .better-messages-conversation,
.ch-theme-header-preview-popup.is-messages-preview .better-messages-chat-room{
  color:inherit;
  overflow:visible!important;
}
/* Better Messages menus/popovers must sit above the CommunityHub preview shell. */
body .bm-dropdown,
body .bm-dropdown-content,
body .bm-context-menu,
body .bm-popover,
body .bm-menu,
body .bpbm-dropdown-menu,
body [class*="bm-"][class*="dropdown"],
body [class*="bm-"][class*="popover"],
body [class*="bm-"][class*="menu"],
body [class*="better-messages"][class*="dropdown"],
body [class*="better-messages"][class*="popover"],
body [class*="better-messages"][class*="menu"],
body [role="menu"]{
  z-index:200000!important;
}

/* v0.3.08 notification single-scroll + profile cleanup */
.ch-theme-notification-popup{overflow:hidden!important;max-height:none!important}.ch-theme-notification-popup-inner{overflow:hidden!important;max-height:none!important}.ch-theme-notification-preview-list{max-height:min(420px,58vh)!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-gutter:stable}.ch-inline-video-source{display:none!important}

/* =========================================================
   v0.3.09 — LIVE integration polish: PMPro, login security,
   Better Messages shell, readable external-plugin surfaces
   ========================================================= */

/* Better Messages: CommunityHub owns only the popup shell. Keep the messenger
   roomy and opaque; Better Messages remains authoritative inside it. */
.ch-theme-header-preview-popup.is-messages-preview{
  width:min(600px,calc(100vw - 24px))!important;
  max-width:600px!important;
  max-height:min(680px,82vh)!important;
  overflow:visible!important;
  border:1px solid var(--ch-theme-border,#d8e4f2)!important;
  border-radius:16px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#111827)!important;
  box-shadow:0 26px 72px rgba(2,8,23,.34)!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-theme-header-preview-inner,
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages{
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#111827)!important;
  border-radius:inherit!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading{
  position:relative!important;
  z-index:2!important;
  min-height:48px!important;
  padding:12px 15px!important;
  border-bottom:1px solid var(--ch-theme-border,#d8e4f2)!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#111827)!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-messages-app{
  width:100%!important;
  height:min(570px,70vh)!important;
  min-height:420px!important;
  overflow:hidden!important;
  background:transparent!important;
  color:inherit!important;
}
.ch-theme-header-preview-popup.is-messages-preview .bp-messages-wrap,
.ch-theme-header-preview-popup.is-messages-preview .better-messages-list{
  width:100%!important;
  max-width:none!important;
  min-height:420px!important;
  height:100%!important;
  margin:0!important;
  border:0!important;
  border-radius:0 0 16px 16px!important;
  box-shadow:none!important;
}
/* Retain the layer fix the user confirmed works. */
body .bm-dropdown,
body .bm-dropdown-content,
body .bm-context-menu,
body .bm-popover,
body .bm-menu,
body .bpbm-dropdown-menu,
body [class*="bm-"][class*="dropdown"],
body [class*="bm-"][class*="popover"],
body [class*="bm-"][class*="menu"],
body [class*="better-messages"][class*="dropdown"],
body [class*="better-messages"][class*="popover"],
body [class*="better-messages"][class*="menu"]{
  z-index:200000!important;
}
@media(max-width:782px){
  .ch-theme-header-preview-popup.is-messages-preview{
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-width:none!important;
  }
  .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-messages-app{
    height:min(620px,76vh)!important;
    min-height:380px!important;
  }
}

/* PMPro account page — styling only; PMPro remains authoritative. */
body.ch-theme-pmpro-account-page .pmpro,
body.ch-theme-pmpro-account-page .pmpro_account,
body.ch-theme-pmpro-account-page .pmpro_section,
body.ch-theme-pmpro-account-page .pmpro_card,
body.ch-theme-pmpro-account-page .pmpro_content_message{
  color:var(--ch-theme-text)!important;
}
body.ch-theme-pmpro-account-page .pmpro_section,
body.ch-theme-pmpro-account-page .pmpro_card,
body.ch-theme-pmpro-account-page .pmpro_account-membership-levelname,
body.ch-theme-pmpro-account-page .pmpro_account-profile,
body.ch-theme-pmpro-account-page .pmpro_account-invoices,
body.ch-theme-pmpro-account-page .pmpro_account-links{
  border:1px solid var(--ch-theme-border)!important;
  border-radius:16px!important;
  background:var(--ch-theme-surface)!important;
  box-shadow:var(--ch-theme-soft-shadow)!important;
}
body.ch-theme-pmpro-account-page .pmpro_section,
body.ch-theme-pmpro-account-page .pmpro_card{padding:18px!important;margin-bottom:16px!important}
body.ch-theme-pmpro-account-page .pmpro h1,
body.ch-theme-pmpro-account-page .pmpro h2,
body.ch-theme-pmpro-account-page .pmpro h3,
body.ch-theme-pmpro-account-page .pmpro strong,
body.ch-theme-pmpro-account-page .pmpro th{color:var(--ch-theme-text)!important}
body.ch-theme-pmpro-account-page .pmpro p,
body.ch-theme-pmpro-account-page .pmpro td,
body.ch-theme-pmpro-account-page .pmpro label,
body.ch-theme-pmpro-account-page .pmpro small{color:var(--ch-theme-muted)!important}
body.ch-theme-pmpro-account-page .pmpro table{width:100%!important;border-collapse:separate!important;border-spacing:0!important;border:1px solid var(--ch-theme-border)!important;border-radius:12px!important;overflow:hidden!important;background:var(--ch-theme-surface)!important}
body.ch-theme-pmpro-account-page .pmpro th,
body.ch-theme-pmpro-account-page .pmpro td{padding:11px 12px!important;border-bottom:1px solid var(--ch-theme-border)!important}
body.ch-theme-pmpro-account-page .pmpro input,
body.ch-theme-pmpro-account-page .pmpro select,
body.ch-theme-pmpro-account-page .pmpro textarea{min-height:44px!important;border:1px solid var(--ch-theme-border)!important;border-radius:11px!important;background:var(--ch-theme-surface)!important;color:var(--ch-theme-text)!important;padding:9px 12px!important}
body.ch-theme-pmpro-account-page .pmpro .pmpro_btn,
body.ch-theme-pmpro-account-page .pmpro input[type="submit"],
body.ch-theme-pmpro-account-page .pmpro button{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:42px!important;padding:9px 15px!important;border:1px solid var(--ch-theme-blue)!important;border-radius:11px!important;
  background:var(--ch-theme-blue)!important;color:#fff!important;font-weight:800!important;text-decoration:none!important;box-shadow:none!important;
}

/* PMPro login widgets/forms. */
.widget_pmpro_login,
.pmpro_login_wrap,
.pmpro_login{
  color:var(--ch-theme-text)!important;
}
.widget_pmpro_login input[type="text"],
.widget_pmpro_login input[type="email"],
.widget_pmpro_login input[type="password"],
.pmpro_login_wrap input[type="text"],
.pmpro_login_wrap input[type="email"],
.pmpro_login_wrap input[type="password"]{
  box-sizing:border-box!important;width:100%!important;min-height:44px!important;padding:9px 12px!important;
  border:1px solid var(--ch-theme-border)!important;border-radius:11px!important;background:var(--ch-theme-surface)!important;color:var(--ch-theme-text)!important;
}
.widget_pmpro_login input[type="submit"],
.widget_pmpro_login button,
.pmpro_login_wrap input[type="submit"],
.pmpro_login_wrap button{
  min-height:42px!important;padding:9px 15px!important;border-radius:11px!important;border:1px solid var(--ch-theme-blue)!important;
  background:var(--ch-theme-blue)!important;color:#fff!important;font-weight:800!important;
}
.widget_pmpro_login a,.pmpro_login_wrap a{color:var(--ch-theme-blue)!important;font-weight:700!important}

/* Wordfence Login Security front-end/shortcode surfaces. */
body.ch-theme-login-security-page .wfls-content,
body.ch-theme-login-security-page .wfls-block,
body.ch-theme-login-security-page .wfls-card,
body.ch-theme-login-security-page .wordfence-login-security,
body.ch-theme-login-security-page [class*="wordfence-login-security"],
body.ch-theme-login-security-page [class*="wfls-"]{
  color:var(--ch-theme-text);
}
body.ch-theme-login-security-page .wfls-block,
body.ch-theme-login-security-page .wfls-card,
body.ch-theme-login-security-page .wordfence-login-security{
  border-color:var(--ch-theme-border)!important;
  background:var(--ch-theme-surface)!important;
  border-radius:15px!important;
}
body.ch-theme-login-security-page input,
body.ch-theme-login-security-page select,
body.ch-theme-login-security-page textarea{
  border:1px solid var(--ch-theme-border)!important;border-radius:10px!important;background:var(--ch-theme-surface)!important;color:var(--ch-theme-text)!important;
}
body.ch-theme-login-security-page button,
body.ch-theme-login-security-page input[type="submit"]{
  min-height:40px!important;border-radius:10px!important;background:var(--ch-theme-blue)!important;color:#fff!important;border-color:var(--ch-theme-blue)!important;font-weight:800!important;
}
body.ch-theme-login-security-page table{color:var(--ch-theme-text)!important;background:var(--ch-theme-surface)!important;border-color:var(--ch-theme-border)!important}

/* Dark mode contract for the integrations above. */
html[data-ch-theme-mode="dark"] .ch-theme-header-preview-popup.is-messages-preview,
body.ch-theme-mode-dark .ch-theme-header-preview-popup.is-messages-preview,
html[data-ch-theme-mode="dark"] .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading,
body.ch-theme-mode-dark .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading{
  background:#0f172a!important;color:#f8fafc!important;border-color:#334155!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-account-page .pmpro_section,
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-account-page .pmpro_card,
body.ch-theme-mode-dark.ch-theme-pmpro-account-page .pmpro_section,
body.ch-theme-mode-dark.ch-theme-pmpro-account-page .pmpro_card,
html[data-ch-theme-mode="dark"] body.ch-theme-login-security-page .wfls-block,
html[data-ch-theme-mode="dark"] body.ch-theme-login-security-page .wfls-card,
body.ch-theme-mode-dark.ch-theme-login-security-page .wfls-block,
body.ch-theme-mode-dark.ch-theme-login-security-page .wfls-card{
  background:#0f172a!important;border-color:#334155!important;color:#f8fafc!important;
}


/* v0.3.10 — account-menu ordering + badge/profile polish */
.ch-theme-account-panel>a{display:flex!important;align-items:center!important;gap:9px!important}.ch-theme-account-item-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:20px!important;flex:0 0 20px!important}.ch-profile-name-row{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:6px!important}.ch-profile-member-type-row{margin-top:4px!important}.ch-profile-member-type{font-size:11px!important;padding:4px 9px!important}.ch-suggestion-section{font-family:var(--ch-theme-font,inherit)!important}.ch-suggestion-section h2{font-size:22px!important;letter-spacing:-.02em!important}.ch-suggestion-section p{font-size:14px!important;line-height:1.6!important}.ch-announcement-dialog{font-family:var(--ch-theme-font,inherit)!important}

/* CommunityHub v0.3.14 — BuddyBoss-inspired compact Messages popup */
.ch-theme-header-preview-popup.is-messages-preview{
  width:min(390px,calc(100vw - 24px))!important;
  max-height:min(620px,78vh)!important;
  overflow:hidden!important;
  border-radius:16px!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-theme-header-preview-inner,
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  height:min(590px,74vh)!important;
  overflow:hidden!important;
  background:var(--ch-theme-surface,#fff)!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  min-height:52px!important;
  padding:11px 14px!important;
  border-bottom:1px solid var(--ch-theme-border,#dbe3ec)!important;
  background:var(--ch-theme-surface,#fff)!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading>strong{
  flex:1 1 auto!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:var(--ch-theme-text,#172033)!important;
  font-size:15px!important;
  font-weight:800!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading>a{
  flex:0 0 auto!important;
  color:var(--ch-theme-link,#2563eb)!important;
  font-size:12px!important;
  font-weight:700!important;
  text-decoration:none!important;
}
.ch-quick-message-list{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  padding:4px 0!important;
}
.ch-quick-message-row{
  appearance:none!important;
  display:grid!important;
  grid-template-columns:46px minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  width:100%!important;
  min-height:66px!important;
  margin:0!important;
  padding:9px 12px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
  cursor:pointer!important;
}
.ch-quick-message-row:hover,
.ch-quick-message-row:focus-visible{
  background:var(--ch-theme-soft,#f4f7fb)!important;
  outline:none!important;
}
.ch-quick-message-row.is-unread{background:rgba(37,99,235,.055)!important}
.ch-quick-message-avatar,
.ch-quick-message-avatar img{
  display:block!important;
  width:46px!important;
  height:46px!important;
  border-radius:50%!important;
  object-fit:cover!important;
}
.ch-quick-message-copy{display:block!important;min-width:0!important}
.ch-quick-message-title-line{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}
.ch-quick-message-title-line strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:var(--ch-theme-text,#172033)!important;font-size:13px!important;font-weight:800!important}
.ch-quick-message-title-line small{flex:0 0 auto!important;padding:2px 6px!important;border-radius:999px!important;background:rgba(37,99,235,.1)!important;color:#2563eb!important;font-size:9px!important;font-weight:800!important;text-transform:uppercase!important}
.ch-quick-message-excerpt{display:block!important;margin-top:3px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:var(--ch-theme-muted,#64748b)!important;font-size:12px!important;line-height:1.35!important}
.ch-quick-message-meta{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:5px!important;color:var(--ch-theme-muted,#64748b)!important;font-size:10px!important;white-space:nowrap!important}
.ch-quick-message-unread{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:18px!important;height:18px!important;padding:0 5px!important;border-radius:999px!important;background:#2563eb!important;color:#fff!important;font-size:9px!important;font-weight:900!important}
.ch-quick-message-empty{padding:28px 16px!important;color:var(--ch-theme-muted,#64748b)!important;text-align:center!important}
.ch-message-back{
  appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 32px!important;
  width:32px!important;
  height:32px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:var(--ch-theme-text,#172033)!important;
  box-shadow:none!important;
  font-size:20px!important;
  line-height:1!important;
  cursor:pointer!important;
}
.ch-message-back:hover,.ch-message-back:focus-visible{background:var(--ch-theme-soft,#f4f7fb)!important;outline:none!important}
.ch-quick-message-thread-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  padding:14px 12px!important;
  background:var(--ch-theme-page,#f7f9fc)!important;
}
.ch-quick-message-bubble-row{display:flex!important;align-items:flex-end!important;gap:7px!important;margin:8px 0!important}
.ch-quick-message-bubble-row.is-mine{justify-content:flex-end!important}
.ch-quick-message-bubble-avatar,.ch-quick-message-bubble-avatar img{display:block!important;width:30px!important;height:30px!important;border-radius:50%!important;object-fit:cover!important}
.ch-quick-message-bubble{max-width:78%!important;padding:8px 10px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:14px 14px 14px 4px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#172033)!important;box-shadow:0 1px 2px rgba(15,23,42,.04)!important}
.ch-quick-message-bubble-row.is-mine .ch-quick-message-bubble{border-color:#2563eb!important;border-radius:14px 14px 4px 14px!important;background:#2563eb!important;color:#fff!important}
.ch-quick-message-bubble p{margin:0!important;color:inherit!important;font-size:13px!important;line-height:1.42!important}
.ch-quick-message-bubble .ch-quick-message-sender{display:block!important;margin:0 0 3px!important;color:var(--ch-theme-muted,#64748b)!important;font-size:10px!important;font-weight:800!important}
.ch-quick-message-bubble time{display:block!important;margin-top:4px!important;color:var(--ch-theme-muted,#64748b)!important;font-size:9px!important;opacity:.85!important}
.ch-quick-message-bubble-row.is-mine .ch-quick-message-bubble time{color:rgba(255,255,255,.78)!important;text-align:right!important}
.ch-quick-message-compose{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  align-items:end!important;
  padding:10px 11px!important;
  border-top:1px solid var(--ch-theme-border,#dbe3ec)!important;
  background:var(--ch-theme-surface,#fff)!important;
}
.ch-quick-message-compose textarea{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:42px!important;
  max-height:110px!important;
  margin:0!important;
  padding:10px 11px!important;
  resize:vertical!important;
  border:1px solid var(--ch-theme-border,#cbd5e1)!important;
  border-radius:12px!important;
  background:var(--ch-theme-input,#fff)!important;
  color:var(--ch-theme-text,#172033)!important;
  box-shadow:none!important;
  font:inherit!important;
  font-size:13px!important;
  line-height:1.35!important;
}
.ch-quick-message-compose textarea:focus{border-color:#2563eb!important;outline:2px solid rgba(37,99,235,.14)!important;outline-offset:0!important}
.ch-quick-message-send{
  appearance:none!important;
  min-width:62px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0 13px!important;
  border:0!important;
  border-radius:11px!important;
  background:#2563eb!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
.ch-quick-message-send:disabled{opacity:.6!important;cursor:wait!important}
.ch-quick-message-status{grid-column:1/-1!important;min-height:0!important;color:var(--ch-theme-muted,#64748b)!important;font-size:10px!important}
html[data-ch-theme-mode="dark"] .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages,
body.ch-theme-mode-dark .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages,
html[data-ch-theme-mode="dark"] .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading,
body.ch-theme-mode-dark .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-heading,
html[data-ch-theme-mode="dark"] .ch-quick-message-compose,
body.ch-theme-mode-dark .ch-quick-message-compose{background:var(--ch-theme-surface,#101b2c)!important}
html[data-ch-theme-mode="dark"] .ch-quick-message-thread-body,
body.ch-theme-mode-dark .ch-quick-message-thread-body{background:#0b1422!important}
html[data-ch-theme-mode="dark"] .ch-quick-message-row:hover,
html[data-ch-theme-mode="dark"] .ch-quick-message-row:focus-visible,
body.ch-theme-mode-dark .ch-quick-message-row:hover,
body.ch-theme-mode-dark .ch-quick-message-row:focus-visible{background:rgba(255,255,255,.055)!important}
html[data-ch-theme-mode="dark"] .ch-quick-message-bubble,
body.ch-theme-mode-dark .ch-quick-message-bubble{background:#152238!important;border-color:#26364f!important;color:#f8fafc!important}
html[data-ch-theme-mode="dark"] .ch-quick-message-compose textarea,
body.ch-theme-mode-dark .ch-quick-message-compose textarea{background:#0f1b2d!important;border-color:#334155!important;color:#f8fafc!important}
@media(max-width:600px){
  .ch-theme-header-preview-popup.is-messages-preview{left:10px!important;right:10px!important;width:auto!important;max-height:calc(100vh - 86px)!important}
  .ch-theme-header-preview-popup.is-messages-preview .ch-theme-header-preview-inner,
  .ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages{height:min(620px,calc(100vh - 100px))!important}
}


/* CommunityHub v0.3.21 destination context + unified group composer */
.ch-activity-destination-row{margin-top:4px;font-size:.82rem;line-height:1.35;color:var(--ch-theme-muted,#707780);display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.ch-activity-destination-row a{font-weight:700;color:inherit;text-decoration:none}
.ch-activity-destination-row a:hover{text-decoration:underline}
.ch-group-composer-shell{margin-bottom:18px}
.ch-group-composer-shell .ch-composer{margin:0}
.ch-composer-destination--locked .ch-composer-destination-control strong{font-size:.92rem;line-height:1.2}


/* =========================================================
   v0.3.24 — readable myCRED earned-point notices
   ========================================================= */
body:not(.wp-admin) #mycred-notifications,
body:not(.wp-admin) #mycred-notice,
body:not(.wp-admin) .mycred-notifications,
body:not(.wp-admin) .mycred-notification,
body:not(.wp-admin) .mycred-notice,
body:not(.wp-admin) .mycred-toast,
body:not(.wp-admin) .mycred-snackbar,
body:not(.wp-admin) [class*="mycred"][class*="notice"],
body:not(.wp-admin) [class*="mycred"][class*="notification"]{
	box-sizing:border-box!important;
	max-width:min(92vw,420px)!important;
	padding:12px 16px!important;
	border:1px solid rgba(30,64,175,.22)!important;
	border-radius:14px!important;
	background:#ffffff!important;
	color:#172033!important;
	box-shadow:0 14px 34px rgba(15,23,42,.18)!important;
	font-size:14px!important;
	font-weight:650!important;
	line-height:1.4!important;
	letter-spacing:0!important;
	text-shadow:none!important;
	overflow-wrap:anywhere!important;
}
body:not(.wp-admin) [class*="mycred"][class*="notice"] a,
body:not(.wp-admin) [class*="mycred"][class*="notification"] a,
body:not(.wp-admin) #mycred-notifications a,
body:not(.wp-admin) #mycred-notice a{
	color:#1d4ed8!important;
	font-weight:800!important;
}
html[data-ch-theme-mode="dark"] body:not(.wp-admin) #mycred-notifications,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) #mycred-notice,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-notifications,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-notification,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-notice,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-toast,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-snackbar,
body.ch-theme-mode-dark:not(.wp-admin) [class*="mycred"][class*="notice"],
body.ch-theme-mode-dark:not(.wp-admin) [class*="mycred"][class*="notification"]{
	border-color:rgba(148,163,184,.26)!important;
	background:#111827!important;
	color:#f8fafc!important;
	box-shadow:0 14px 36px rgba(0,0,0,.42)!important;
}
html[data-ch-theme-mode="dark"] body:not(.wp-admin) [class*="mycred"][class*="notice"] a,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) [class*="mycred"][class*="notification"] a,
body.ch-theme-mode-dark:not(.wp-admin) [class*="mycred"][class*="notice"] a,
body.ch-theme-mode-dark:not(.wp-admin) [class*="mycred"][class*="notification"] a{
	color:#93c5fd!important;
}


/* =========================================================
   v0.3.25 — Apply the APPROVED Community desktop widget-column geometry
   to every other CommunityHub social route.
   IMPORTANT: .ch-theme-community-shell--community is intentionally excluded;
   the already-approved Community page remains untouched.
   ========================================================= */
@media (min-width:1180px){
  .ch-theme-container--community:has(.ch-theme-community-shell:not(.ch-theme-community-shell--community)){
    width:min(100% - 20px,1540px)!important;
    max-width:1540px!important;
    --ch-social-stack-width:820px;
    --ch-social-widget-width:340px;
    --ch-social-widget-gap:8px;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community).ch-theme-layout--sidebar{
    display:grid!important;
    align-items:start!important;
    justify-content:center!important;
    gap:var(--ch-social-widget-gap)!important;
    column-gap:var(--ch-social-widget-gap)!important;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community).ch-theme-layout--sidebar-both{
    grid-template-columns:minmax(300px,var(--ch-social-widget-width)) minmax(0,var(--ch-social-stack-width)) minmax(300px,var(--ch-social-widget-width))!important;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community).ch-theme-layout--sidebar-left{
    grid-template-columns:minmax(300px,var(--ch-social-widget-width)) minmax(0,var(--ch-social-stack-width))!important;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community).ch-theme-layout--sidebar-right{
    grid-template-columns:minmax(0,var(--ch-social-stack-width)) minmax(300px,var(--ch-social-widget-width))!important;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community) .ch-theme-sidebar--left{
    justify-self:end!important;width:100%!important;max-width:var(--ch-social-widget-width)!important;margin-right:0!important;padding-right:0!important;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community) .ch-theme-sidebar--right{
    justify-self:start!important;width:100%!important;max-width:var(--ch-social-widget-width)!important;margin-left:0!important;padding-left:0!important;
  }
  .ch-theme-community-shell:not(.ch-theme-community-shell--community) .ch-theme-community-content-wrap{
    justify-self:center!important;width:100%!important;margin-left:0!important;margin-right:0!important;
  }
}

/* Immediate CommunityHub myCRED reward toast. Theme owns presentation; Core owns
   the reward transaction/result. */
.ch-reward-toast{
  position:fixed;right:20px;bottom:24px;z-index:2147483200;display:flex;align-items:center;gap:11px;
  box-sizing:border-box;min-width:260px;max-width:min(92vw,390px);padding:13px 15px;border:1px solid #d8e1ec;
  border-radius:14px;background:#fff;color:#172033;box-shadow:0 14px 36px rgba(15,23,42,.22);
  opacity:0;transform:translateY(12px) scale(.98);transition:opacity .2s ease,transform .2s ease;pointer-events:none;
}
.ch-reward-toast.is-visible{opacity:1;transform:translateY(0) scale(1)}
.ch-reward-toast-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#f2c94c;color:#3b2b00;font-size:18px;font-weight:900}
.ch-reward-toast-copy{display:grid;gap:2px;min-width:0;line-height:1.25}
.ch-reward-toast-copy strong{color:inherit;font-size:13px;font-weight:800}
.ch-reward-toast-copy span{color:#4b5565;font-size:12px;font-weight:650}
html[data-ch-theme-mode="dark"] .ch-reward-toast,body.ch-theme-mode-dark .ch-reward-toast{border-color:#334155;background:#111827;color:#f8fafc;box-shadow:0 16px 42px rgba(0,0,0,.46)}
html[data-ch-theme-mode="dark"] .ch-reward-toast-copy span,body.ch-theme-mode-dark .ch-reward-toast-copy span{color:#cbd5e1}
@media(max-width:782px){.ch-reward-toast{left:12px;right:12px;bottom:86px;max-width:none;min-width:0}}


/* =========================================================
   v0.3.28 — BuddyBoss-style message launcher + full inbox polish
   ========================================================= */
.ch-theme-header-preview-popup.is-messages-preview{
  width:min(430px,calc(100vw - 24px))!important;
  max-width:430px!important;
  max-height:min(620px,78vh)!important;
  overflow:hidden!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-theme-header-preview-inner,
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-preview-panel--messages{
  overflow:hidden!important;
  max-height:inherit!important;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-message-list{
  max-height:min(520px,66vh)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.ch-theme-header-preview-popup.is-messages-preview .ch-quick-message-row{
  width:100%;
  cursor:pointer;
}

body.ch-theme-better-messages-page .ch-theme-main,
body.ch-theme-better-messages-page #primary,
body.ch-theme-better-messages-page .site-main{
  width:100%!important;
  max-width:none!important;
}
body.ch-theme-better-messages-page .ch-theme-container,
body.ch-theme-better-messages-page .entry-content,
body.ch-theme-better-messages-page .page-content{
  width:min(1240px,calc(100% - 32px))!important;
  max-width:1240px!important;
  margin-inline:auto!important;
}
body.ch-theme-better-messages-page .bp-messages-wrap-main,
body.ch-theme-better-messages-page .bp-messages-wrap{
  width:100%!important;
  max-width:1180px!important;
  min-height:min(760px,calc(100vh - 180px))!important;
  margin:22px auto 40px!important;
  border:1px solid var(--ch-theme-border,#d8e4f2)!important;
  border-radius:18px!important;
  background:var(--ch-theme-surface,#fff)!important;
  box-shadow:0 18px 48px rgba(15,23,42,.10)!important;
  overflow:hidden!important;
}
@media(max-width:782px){
  .ch-theme-header-preview-popup.is-messages-preview{
    left:8px!important;right:8px!important;width:auto!important;max-width:none!important;
    max-height:72vh!important;
  }
  .ch-theme-header-preview-popup.is-messages-preview .ch-quick-message-list{max-height:60vh!important}
  body.ch-theme-better-messages-page .ch-theme-container,
  body.ch-theme-better-messages-page .entry-content,
  body.ch-theme-better-messages-page .page-content{width:100%!important;max-width:none!important}
  body.ch-theme-better-messages-page .bp-messages-wrap-main,
  body.ch-theme-better-messages-page .bp-messages-wrap{
    margin:0!important;border:0!important;border-radius:0!important;min-height:calc(100dvh - var(--ch-theme-header-height,64px))!important;box-shadow:none!important
  }
}

/* =========================================================
   v0.3.29 — reaction visibility, reward contrast, messenger polish
   ========================================================= */
.ch-post-reaction-wrap .ch-reaction-summary{
  display:inline-flex;align-items:center;gap:2px;margin-left:5px;vertical-align:middle;
}
.ch-post-reaction-wrap .ch-reaction-summary:empty{display:none}
.ch-post-reaction-wrap .ch-reaction-summary-item{
  display:inline-flex;align-items:center;justify-content:center;line-height:1;
}
.ch-post-reaction-wrap .ch-reaction-summary-item .ch-reaction-emoji{font-size:16px;line-height:1}
.ch-post-reaction-wrap .ch-reaction-summary-item .ch-reaction-icon-img{width:17px;height:17px;object-fit:contain;border-radius:0}

/* myCRED sometimes applies its own color to nested spans/strong tags. Force the
   complete notice tree to inherit the readable CommunityHub foreground. */
body:not(.wp-admin) #mycred-notifications *,
body:not(.wp-admin) #mycred-notice *,
body:not(.wp-admin) .mycred-notifications *,
body:not(.wp-admin) .mycred-notification *,
body:not(.wp-admin) .mycred-notice *,
body:not(.wp-admin) .mycred-toast *,
body:not(.wp-admin) .mycred-snackbar *,
body:not(.wp-admin) [class*="mycred"][class*="notice"] *,
body:not(.wp-admin) [class*="mycred"][class*="notification"] *{
  color:#172033!important;text-shadow:none!important;
}
html[data-ch-theme-mode="dark"] body:not(.wp-admin) #mycred-notifications *,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) #mycred-notice *,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-notifications *,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-notification *,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-notice *,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-toast *,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) .mycred-snackbar *,
body.ch-theme-mode-dark:not(.wp-admin) [class*="mycred"][class*="notice"] *,
body.ch-theme-mode-dark:not(.wp-admin) [class*="mycred"][class*="notification"] *{
  color:#f8fafc!important;
}
body:not(.wp-admin) #mycred-notifications a,
body:not(.wp-admin) #mycred-notice a,
body:not(.wp-admin) [class*="mycred"][class*="notice"] a,
body:not(.wp-admin) [class*="mycred"][class*="notification"] a{color:#1d4ed8!important}
html[data-ch-theme-mode="dark"] body:not(.wp-admin) #mycred-notifications a,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) #mycred-notice a,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) [class*="mycred"][class*="notice"] a,
html[data-ch-theme-mode="dark"] body:not(.wp-admin) [class*="mycred"][class*="notification"] a{color:#93c5fd!important}

/* Better Messages page: use the entire CommunityHub center lane and feed the
   plugin its own documented color variables instead of fighting every child. */
body.ch-theme-better-messages-page .bp-messages-wrap-main,
body.ch-theme-better-messages-page .bp-messages-wrap{
  width:100%!important;max-width:none!important;box-sizing:border-box!important;
  min-height:640px!important;height:min(76vh,820px)!important;
  border:1px solid var(--ch-theme-border)!important;border-radius:16px!important;
  overflow:hidden!important;box-shadow:var(--ch-theme-soft-shadow)!important;
}
body.ch-theme-better-messages-page .bp-messages-wrap .chat-footer{min-height:58px!important;}
@media(max-width:782px){
  body.ch-theme-better-messages-page .bp-messages-wrap-main,
  body.ch-theme-better-messages-page .bp-messages-wrap{
    height:calc(100dvh - var(--ch-theme-header-height,64px))!important;
    min-height:0!important;border-radius:0!important;border-left:0!important;border-right:0!important;
  }
}

/* =========================================================
   v0.3.30 — premium rewards, matched notification counts,
              native Better Messages widget + sane inbox size
   ========================================================= */

/* Notification badge: the count now matches the CommunityHub panel. Keep the
   typography compact so 2 digits remain legible without becoming a chunky orb. */
.ch-theme-header-icon-button > .ch-theme-unread-badge.ch-theme-header-unread-badge{
  width:auto!important;min-width:18px!important;max-width:28px!important;height:18px!important;
  padding:0 4px!important;border-radius:999px!important;font-size:9px!important;font-weight:750!important;
  line-height:18px!important;letter-spacing:-.01em!important;font-family:Arial,Helvetica,sans-serif!important;
  font-variant-numeric:tabular-nums!important;
}

/* CommunityHub points celebration. */
@keyframes chRewardArrival{
  0%{opacity:0;transform:translateY(18px) scale(.88) rotate(-1deg);filter:blur(2px)}
  58%{opacity:1;transform:translateY(-3px) scale(1.035) rotate(.25deg);filter:blur(0)}
  100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
}
@keyframes chRewardGoldPulse{
  0%,100%{box-shadow:0 16px 44px rgba(0,0,0,.34),0 0 0 1px rgba(200,168,75,.28),0 0 18px rgba(200,168,75,.22)}
  50%{box-shadow:0 18px 52px rgba(0,0,0,.42),0 0 0 2px rgba(245,211,105,.55),0 0 34px rgba(200,168,75,.48)}
}
@keyframes chRewardStarSpin{
  0%{transform:scale(.7) rotate(-25deg)}55%{transform:scale(1.18) rotate(12deg)}100%{transform:scale(1) rotate(0)}
}
.ch-reward-toast{
  right:22px!important;bottom:26px!important;min-width:300px!important;max-width:min(92vw,430px)!important;
  padding:15px 17px!important;gap:13px!important;border:2px solid #c8a84b!important;border-radius:16px!important;
  background:linear-gradient(145deg,#11100c 0%,#17150f 55%,#0b0b0a 100%)!important;color:#f5f0e8!important;
  box-shadow:0 16px 44px rgba(0,0,0,.34),0 0 0 1px rgba(200,168,75,.28),0 0 18px rgba(200,168,75,.22)!important;
}
.ch-reward-toast.is-visible{
  animation:chRewardArrival .48s cubic-bezier(.18,.89,.32,1.28) both,chRewardGoldPulse 1.65s ease-in-out .45s 2!important;
}
.ch-reward-toast-icon{
  width:42px!important;height:42px!important;flex-basis:42px!important;border:1px solid rgba(245,240,232,.26)!important;
  background:radial-gradient(circle at 35% 30%,#f5d975 0%,#c8a84b 48%,#8d7024 100%)!important;
  color:#080808!important;font-size:21px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.48),0 5px 16px rgba(200,168,75,.28)!important;
  animation:chRewardStarSpin .6s cubic-bezier(.18,.89,.32,1.28) both;
}
.ch-reward-toast-copy strong{font-size:14px!important;font-weight:850!important;letter-spacing:.01em!important;color:#f5f0e8!important}
.ch-reward-toast-copy span{font-size:13px!important;font-weight:800!important;color:#e6c75f!important;letter-spacing:.015em!important}
@media(max-width:782px){
  .ch-reward-toast{left:12px!important;right:12px!important;bottom:88px!important;min-width:0!important}
}

/* If myCRED also emits its native queued notice, make it visually compatible
   with the CommunityHub reward celebration rather than white-on-white. */
body:not(.wp-admin) #mycred-notifications,
body:not(.wp-admin) #mycred-notice,
body:not(.wp-admin) .mycred-notifications,
body:not(.wp-admin) .mycred-notification,
body:not(.wp-admin) .mycred-notice,
body:not(.wp-admin) .mycred-toast,
body:not(.wp-admin) .mycred-snackbar,
body:not(.wp-admin) [class*="mycred"][class*="notice"],
body:not(.wp-admin) [class*="mycred"][class*="notification"]{
  border:2px solid #c8a84b!important;border-radius:15px!important;
  background:linear-gradient(145deg,#11100c,#17150f 58%,#0b0b0a)!important;color:#f5f0e8!important;
  box-shadow:0 16px 44px rgba(0,0,0,.36),0 0 24px rgba(200,168,75,.30)!important;
}
body:not(.wp-admin) #mycred-notifications *,
body:not(.wp-admin) #mycred-notice *,
body:not(.wp-admin) .mycred-notifications *,
body:not(.wp-admin) .mycred-notification *,
body:not(.wp-admin) .mycred-notice *,
body:not(.wp-admin) .mycred-toast *,
body:not(.wp-admin) .mycred-snackbar *,
body:not(.wp-admin) [class*="mycred"][class*="notice"] *,
body:not(.wp-admin) [class*="mycred"][class*="notification"] *{color:#f5f0e8!important;text-shadow:none!important}

/* Standalone Messages page: desktop remains a focused messenger in the center
   lane; only mobile becomes edge-to-edge. This reverses the v0.3.29 stretch. */
body.ch-theme-better-messages-page .ch-theme-container,
body.ch-theme-better-messages-page .entry-content,
body.ch-theme-better-messages-page .page-content{
  width:100%!important;max-width:900px!important;margin-inline:auto!important;
}
body.ch-theme-better-messages-page .bp-messages-wrap-main,
body.ch-theme-better-messages-page .bp-messages-wrap{
  width:100%!important;max-width:820px!important;height:min(720px,calc(100vh - 170px))!important;
  min-height:560px!important;margin:18px auto 34px!important;border-radius:16px!important;
}
@media(max-width:782px){
  body.ch-theme-better-messages-page .ch-theme-container,
  body.ch-theme-better-messages-page .entry-content,
  body.ch-theme-better-messages-page .page-content{width:100%!important;max-width:none!important}
  body.ch-theme-better-messages-page .bp-messages-wrap-main,
  body.ch-theme-better-messages-page .bp-messages-wrap{
    width:100%!important;max-width:none!important;height:calc(100dvh - var(--ch-theme-header-height,64px))!important;
    min-height:0!important;margin:0!important;border-radius:0!important;border-left:0!important;border-right:0!important;
  }
}


/* v0.3.32 — Mobile rail ownership recovery.
 * Project law: desktop widget rails do not render on mobile. Keep this block
 * intentionally narrow: no header, navigation, login, composer, or module
 * geometry belongs here. */
@media (max-width: 782px) {
  body.ch-theme .ch-theme-sidebar,
  body.ch-theme .ch-theme-community-sidebar {
    display: none !important;
  }

  body.ch-theme .ch-theme-layout,
  body.ch-theme .ch-theme-layout--sidebar,
  body.ch-theme .ch-theme-layout--sidebar-left,
  body.ch-theme .ch-theme-layout--sidebar-right,
  body.ch-theme .ch-theme-layout--sidebar-both,
  body.ch-theme .ch-theme-community-shell,
  body.ch-theme .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  body.ch-theme .ch-theme-community-shell.ch-theme-layout--sidebar-right,
  body.ch-theme .ch-theme-community-shell.ch-theme-layout--sidebar-both {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.ch-theme .ch-theme-page-shell,
  body.ch-theme .ch-theme-community-content-wrap {
    min-width: 0 !important;
    max-width: 100% !important;
  }
}


/* =========================================================
   v0.3.33 — stabilization: rails, mobile nav/store/saved,
              login/BM isolation, premium rewards
   ========================================================= */

/* Desktop social rail geometry is owned by the approved earlier standard. */

/* Messages is a dedicated application surface. Only the main inbox is sized;
   never resize Better Messages' floating/combined desktop widget. */
body.ch-theme-better-messages-page .bp-messages-wrap-main{
  width:min(100%,900px)!important;max-width:900px!important;height:min(760px,calc(100vh - 150px))!important;min-height:580px!important;margin:18px auto 34px!important;border-radius:16px!important;overflow:hidden!important
}
@media(max-width:782px){
  body.ch-theme-better-messages-page .bp-messages-wrap-main{width:100%!important;max-width:none!important;height:calc(100dvh - var(--ch-theme-header-height,64px) - env(safe-area-inset-bottom))!important;min-height:0!important;margin:0!important;border-radius:0!important}
}

/* Mobile back-to-top: compact touch target, not an oversized floating tile. */
@media(max-width:782px){
  .ch-theme-back-to-top{width:42px!important;height:42px!important;--ch-btt-size:42px!important;--ch-btt-edge:12px!important}
  .ch-theme-back-to-top-icon{font-size:20px!important}
}

/* Mobile community navigation: balanced equal slots while preserving the raised center action. */
@media(max-width:782px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community{display:grid!important;grid-auto-flow:column!important;grid-auto-columns:minmax(0,1fr)!important;align-items:center!important;justify-content:stretch!important;gap:2px!important;width:100%!important;padding-inline:5px!important}
  .ch-theme-community-bar--bottom .ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a{width:100%!important;min-width:0!important;justify-content:center!important;text-align:center!important;padding:7px 4px!important}
  .ch-theme-community-bar--bottom .ch-theme-menu-list--community>li{min-width:0!important;margin:0!important;text-align:center!important}
}

/* Saved Posts must never create horizontal page scroll on phones. */
@media(max-width:782px){
  body.ch-theme .ch-theme-community-shell--saved,
  body.ch-theme .ch-theme-community-shell--saved .ch-theme-community-content-wrap,
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-page,
  body.ch-theme .ch-theme-community-shell--saved .ch-feed,
  body.ch-theme .ch-theme-community-shell--saved .ch-activity-card{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  body.ch-theme .ch-theme-community-shell--saved{overflow-x:clip!important}
  body.ch-theme .ch-theme-community-shell--saved img,body.ch-theme .ch-theme-community-shell--saved video,body.ch-theme .ch-theme-community-shell--saved iframe{max-width:100%!important}
}

/* WooCommerce mobile density: compact browse experience instead of desktop-sized cards. */
@media(max-width:782px){
  body.woocommerce .ch-theme-container,body.woocommerce-page .ch-theme-container{width:calc(100% - 16px)!important;max-width:none!important;padding-inline:0!important}
  body.woocommerce ul.products,body.woocommerce-page ul.products{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:0!important}
  body.woocommerce ul.products li.product,body.woocommerce-page ul.products li.product{width:auto!important;float:none!important;margin:0!important;padding:10px!important;border-radius:13px!important;min-width:0!important}
  body.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:14px!important;line-height:1.25!important;padding:.5em 0 .25em!important}
  body.woocommerce ul.products li.product .price{font-size:13px!important;margin-bottom:7px!important}
  body.woocommerce ul.products li.product .button{font-size:12px!important;min-height:38px!important;padding:8px 10px!important;width:100%!important;margin-top:5px!important}
  body.single-product div.product{display:block!important}
  body.single-product div.product .summary{padding-inline:2px!important}
  body.woocommerce-cart table.shop_table,body.woocommerce-checkout table.shop_table{font-size:13px!important}
}
@media(max-width:390px){body.woocommerce ul.products,body.woocommerce-page ul.products{gap:8px!important}}

/* Premium myCRED celebration, especially on mobile. */
.ch-reward-toast,
body:not(.wp-admin) .mycred-notification,
body:not(.wp-admin) .mycred-notice{
  border-color:#c8a84b!important;background:linear-gradient(135deg,#090909 0%,#16130a 55%,#090909 100%)!important;color:#f5f0e8!important;box-shadow:0 18px 54px rgba(0,0,0,.46),0 0 0 1px rgba(245,211,105,.32),0 0 34px rgba(200,168,75,.38)!important
}
@media(max-width:782px){
  .ch-reward-toast{left:10px!important;right:10px!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;max-width:none!important;padding:13px 14px!important;border-radius:15px!important}
  .ch-reward-toast-icon{width:38px!important;height:38px!important;flex-basis:38px!important}
  .ch-reward-toast-copy strong{font-size:13px!important}.ch-reward-toast-copy span{font-size:12px!important}
  body:not(.wp-admin) .mycred-notification,body:not(.wp-admin) .mycred-notice,body:not(.wp-admin) [class*="mycred"][class*="notification"]{left:10px!important;right:10px!important;top:auto!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;font-size:13px!important;padding:13px 14px!important}
}

/* =========================================================
   v0.3.35 — universal product stabilization / polish
   ========================================================= */

/* ---------------------------------------------------------
   Rails: v0.3.37 restores the approved v0.2.22-v0.2.24 / v0.3.25
   rules already defined earlier in this stylesheet. No later geometry override
   belongs here. Route-specific left/right/both/none settings remain independent.
   --------------------------------------------------------- */

/* ---------------------------------------------------------
   Better Messages: generic detection, no route/domain hardcoding.
   Page messenger and floating widget must never share sizing rules.
   --------------------------------------------------------- */
body.ch-theme-better-messages-page .ch-theme-community-shell,
body.ch-theme-better-messages-page .ch-theme-layout { grid-template-columns:minmax(0,1fr) !important; }
body.ch-theme-better-messages-page .ch-theme-sidebar,
body.ch-theme-better-messages-page .ch-theme-community-sidebar { display:none !important; }
body.ch-theme-better-messages-page .ch-profile-content .bp-messages-wrap,
body.ch-theme-better-messages-page #primary .bp-messages-wrap:not(.bp-better-messages-list):not(.bp-better-messages-mini) {
  width:min(100%,960px) !important;max-width:960px !important;min-width:0 !important;height:min(760px,calc(100dvh - 150px)) !important;
  min-height:560px !important;margin:14px auto 34px !important;border-radius:18px !important;overflow:hidden !important;
  box-shadow:0 16px 46px rgba(15,23,42,.13) !important;
}
/* Floating Better Messages widget geometry is Better Messages-owned. */
@media(max-width:782px){
  body.ch-theme-better-messages-page .ch-theme-community-bar--bottom{display:none !important}
  body.ch-theme-better-messages-page .ch-profile-header-card,
  body.ch-theme-better-messages-page .ch-profile-tabs{display:none !important}
  body.ch-theme-better-messages-page .ch-theme-main,
  body.ch-theme-better-messages-page .ch-theme-container--community,
  body.ch-theme-better-messages-page .ch-theme-community-content-wrap{padding:0 !important;margin:0 !important;width:100% !important;max-width:none !important}
  body.ch-theme-better-messages-page .ch-profile-content .bp-messages-wrap,
  body.ch-theme-better-messages-page #primary .bp-messages-wrap:not(.bp-better-messages-list):not(.bp-better-messages-mini){
    width:100% !important;max-width:none !important;height:calc(100dvh - var(--ch-theme-header-height,64px)) !important;min-height:0 !important;
    margin:0 !important;border-radius:0 !important;box-shadow:none !important;
  }
}

/* ---------------------------------------------------------
   Membership hub — same shell across PMPro Account/Billing/Invoice pages.
   --------------------------------------------------------- */
body.ch-theme-membership-hub .ch-theme-page-shell{max-width:980px!important;margin-inline:auto!important}
.ch-membership-hub-shell{display:grid;gap:14px;max-width:960px;margin:12px auto 32px}
.ch-membership-hub-header{display:grid;gap:5px;padding:20px 22px 0;border:1px solid var(--ch-theme-border,#dbe3ec);border-radius:20px;background:var(--ch-theme-surface,#fff);overflow:hidden}
.ch-membership-hub-kicker{font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--ch-theme-accent,#2563eb)}
.ch-membership-hub-header h1{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.08;color:var(--ch-theme-text,#0f172a)}
.ch-membership-hub-tabs{display:flex;gap:6px;margin-top:10px;overflow-x:auto;scrollbar-width:none}.ch-membership-hub-tabs::-webkit-scrollbar{display:none}.ch-membership-hub-tab{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border-radius:12px 12px 0 0;color:var(--ch-theme-muted,#64748b)!important;text-decoration:none!important;font-weight:850;border-bottom:3px solid transparent}.ch-membership-hub-tab.is-active{color:var(--ch-theme-text,#0f172a)!important;border-bottom-color:var(--ch-theme-accent,#2563eb);background:color-mix(in srgb,var(--ch-theme-accent,#2563eb) 7%,transparent)}
.ch-membership-hub-content{padding:20px 22px;border:1px solid var(--ch-theme-border,#dbe3ec);border-radius:20px;background:var(--ch-theme-surface,#fff);color:var(--ch-theme-text,#0f172a)}
.ch-membership-hub-content .pmpro,.ch-membership-hub-content [class*="pmpro"]{max-width:100%!important;box-sizing:border-box!important}.ch-membership-hub-content table{width:100%;border-collapse:separate;border-spacing:0}.ch-membership-hub-content input,.ch-membership-hub-content select,.ch-membership-hub-content textarea{max-width:100%;min-height:44px;border-radius:11px!important}.ch-membership-hub-content .pmpro_btn,.ch-membership-hub-content input[type="submit"],.ch-membership-hub-content button{min-height:42px;border-radius:11px!important;font-weight:850!important}
@media(max-width:782px){.ch-membership-hub-shell{margin:8px 8px 24px;gap:10px}.ch-membership-hub-header{padding:16px 14px 0;border-radius:16px}.ch-membership-hub-content{padding:14px;border-radius:16px;overflow-x:hidden}.ch-membership-hub-content table{font-size:12px}.ch-membership-hub-content th,.ch-membership-hub-content td{padding:8px 6px!important}.ch-membership-hub-tab{min-height:40px;padding:7px 11px;font-size:13px}}

/* ---------------------------------------------------------
   Suggestions — polished, focused feedback surface.
   --------------------------------------------------------- */
.ch-suggestion-section{max-width:820px!important;margin-inline:auto!important;padding:22px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:20px!important;background:var(--ch-theme-surface,#fff)!important;box-shadow:0 12px 34px rgba(15,23,42,.06)!important}
.ch-suggestion-section h2,.ch-suggestion-section h3{margin-top:0!important}.ch-suggestion-form{display:grid!important;gap:14px!important}.ch-suggestion-form label{display:grid!important;gap:7px!important;font-size:13px!important;font-weight:850!important;color:var(--ch-theme-text,#0f172a)!important}.ch-suggestion-form input[type="text"],.ch-suggestion-form textarea,.ch-suggestion-form select{width:100%!important;max-width:100%!important;border:1px solid var(--ch-theme-border,#cbd5e1)!important;border-radius:13px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#0f172a)!important;padding:11px 12px!important;font:inherit!important}.ch-suggestion-form textarea{min-height:170px!important;resize:vertical!important}.ch-suggestion-form button,.ch-suggestion-form input[type="submit"]{min-height:44px!important;border-radius:12px!important;font-weight:900!important}
@media(max-width:782px){.ch-suggestion-section{margin:8px!important;padding:15px!important;border-radius:16px!important}.ch-suggestion-form textarea{min-height:150px!important}}

/* ---------------------------------------------------------
   Premium myCRED notices. Native notice and Core realtime toast share one look.
   --------------------------------------------------------- */
body:not(.wp-admin) #mycred-notifications,
body:not(.wp-admin) #mycred-notice,
body:not(.wp-admin) .mycred-notifications,
body:not(.wp-admin) .mycred-notification,
body:not(.wp-admin) .mycred-notice,
body:not(.wp-admin) [class*="mycred"][class*="notification"]{
  border:1px solid #c8a84b!important;border-radius:18px!important;background:linear-gradient(135deg,#070707,#1b160a 58%,#070707)!important;color:#f5f0e8!important;
  box-shadow:0 20px 60px rgba(0,0,0,.46),0 0 0 1px rgba(200,168,75,.22),0 0 34px rgba(200,168,75,.28)!important;
}
body:not(.wp-admin) #mycred-notifications *,body:not(.wp-admin) #mycred-notice *,body:not(.wp-admin) .mycred-notification *,body:not(.wp-admin) .mycred-notice *{color:#f5f0e8!important;text-shadow:none!important}
body:not(.wp-admin) #mycred-notifications strong,body:not(.wp-admin) #mycred-notice strong,body:not(.wp-admin) .mycred-notification strong{color:#f0cf66!important}
@media(max-width:782px){body:not(.wp-admin) #mycred-notifications,body:not(.wp-admin) #mycred-notice,body:not(.wp-admin) .mycred-notification,body:not(.wp-admin) .mycred-notice{left:10px!important;right:10px!important;top:auto!important;bottom:calc(82px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;padding:12px 13px!important;font-size:13px!important;border-radius:16px!important}}

/* ---------------------------------------------------------
   Store / cart / checkout — compact but readable commerce UI.
   --------------------------------------------------------- */
body.woocommerce .ch-theme-main--woocommerce .ch-theme-container,body.woocommerce-page .ch-theme-main--woocommerce .ch-theme-container{max-width:1240px!important}
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;gap:16px!important}.woocommerce ul.products li.product{width:auto!important;float:none!important;margin:0!important;padding:12px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:16px!important;background:var(--ch-theme-surface,#fff)!important;box-shadow:0 8px 24px rgba(15,23,42,.05)!important;min-width:0!important}.woocommerce ul.products li.product img{aspect-ratio:1/1!important;object-fit:contain!important;border-radius:12px!important;margin:0 0 9px!important}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:14px!important;line-height:1.25!important;padding:2px 0 4px!important}.woocommerce ul.products li.product .price{font-size:14px!important;font-weight:850!important}.woocommerce ul.products li.product .button{width:100%!important;min-height:40px!important;margin-top:7px!important;padding:8px 10px!important;border-radius:10px!important;font-size:12px!important}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce .select2-container .select2-selection{min-height:44px!important;border-radius:10px!important}.woocommerce-checkout .col2-set,.woocommerce-account .col2-set{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}.woocommerce-checkout-review-order,.woocommerce-cart-form,.cart_totals,.woocommerce-checkout #payment{border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:16px!important;background:var(--ch-theme-surface,#fff)!important;padding:14px!important}.woocommerce table.shop_table{border-collapse:separate!important;border-spacing:0!important;border-radius:14px!important;overflow:hidden!important}.woocommerce .quantity .qty{min-height:40px!important;width:64px!important;border-radius:9px!important}
@media(max-width:782px){body.woocommerce .ch-theme-container,body.woocommerce-page .ch-theme-container{width:calc(100% - 12px)!important}.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.woocommerce ul.products li.product{padding:8px!important;border-radius:12px!important}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:12px!important;line-height:1.22!important}.woocommerce ul.products li.product .price{font-size:12px!important}.woocommerce ul.products li.product .button{font-size:11px!important;min-height:36px!important;padding:7px 6px!important}.woocommerce-checkout .col2-set,.woocommerce-account .col2-set{grid-template-columns:1fr!important;gap:10px!important}.woocommerce-checkout-review-order,.woocommerce-cart-form,.cart_totals,.woocommerce-checkout #payment{padding:10px!important;border-radius:13px!important}.woocommerce table.shop_table{font-size:11px!important}.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:7px 5px!important}.woocommerce form .form-row{margin-bottom:8px!important}.woocommerce form .form-row label{font-size:12px!important}.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce .select2-container .select2-selection{min-height:40px!important;font-size:13px!important}}

/* Mobile nav labels/buttons remain balanced and centered. */
@media(max-width:782px){.ch-theme-community-bar--bottom .ch-theme-community-nav,.ch-theme-community-bar--bottom .ch-theme-menu-list--community{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(0,1fr))!important;align-items:center!important;width:100%!important}.ch-theme-community-bar--bottom .ch-theme-nav-pill,.ch-theme-community-bar--bottom .ch-theme-menu-list--community>li>a{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;min-width:0!important;margin:0!important;padding-inline:3px!important}}

/* Mobile Saved page hard containment. */
@media(max-width:782px){body.ch-theme .ch-theme-community-shell--saved,body.ch-theme .ch-theme-community-shell--saved *{box-sizing:border-box}body.ch-theme .ch-theme-community-shell--saved{width:100%!important;max-width:100%!important;overflow-x:clip!important}.ch-theme-community-shell--saved .ch-theme-community-content-wrap,.ch-theme-community-shell--saved .ch-bookmarks-page,.ch-theme-community-shell--saved .ch-feed,.ch-theme-community-shell--saved .ch-activity-card{width:100%!important;max-width:100%!important;min-width:0!important}.ch-theme-community-shell--saved img,.ch-theme-community-shell--saved video,.ch-theme-community-shell--saved iframe{max-width:100%!important}}

/* =========================================================
   v0.3.36 — rails, membership hub, commerce and messages polish
   ========================================================= */

/* Desktop social rails intentionally use the approved earlier rail standard. */
/* Commerce never inherits a generic WordPress rail. */
body.woocommerce .ch-theme-main--woocommerce>.ch-theme-container,
body.woocommerce-page .ch-theme-main--woocommerce>.ch-theme-container{width:min(calc(100% - 24px),1280px)!important;max-width:1280px!important;margin-inline:auto!important}

/* Membership Hub: one clean application surface across PMPro account,
   billing and invoice pages. Tabs swap content without a full-page reload. */
.ch-membership-hub-shell{font-family:inherit!important;color:var(--ch-theme-text,#172033)!important}
.ch-membership-hub-header{padding:24px 26px 0!important;border-radius:20px!important;box-shadow:0 12px 34px rgba(15,23,42,.07)!important}
.ch-membership-hub-kicker{font-size:10.5px!important;font-weight:750!important;letter-spacing:.12em!important}
.ch-membership-hub-header h1{font-size:clamp(25px,3vw,34px)!important;font-weight:760!important;letter-spacing:-.025em!important;line-height:1.08!important}
.ch-membership-hub-intro{margin:4px 0 0!important;max-width:650px;color:var(--ch-theme-muted,#667085)!important;font-size:13.5px!important;font-weight:480!important;line-height:1.5!important}
.ch-membership-hub-tabs{margin-top:16px!important;gap:4px!important;scroll-snap-type:x proximity!important}
.ch-membership-hub-tab{scroll-snap-align:start!important;min-height:44px!important;padding:9px 15px!important;font-size:13px!important;font-weight:700!important;letter-spacing:0!important;border-radius:10px 10px 0 0!important;transition:background .16s ease,color .16s ease,border-color .16s ease!important}
.ch-membership-hub-content{position:relative!important;padding:24px 26px!important;border-radius:20px!important;box-shadow:0 12px 34px rgba(15,23,42,.06)!important;transition:opacity .16s ease,transform .16s ease!important}
.ch-membership-hub-shell.is-loading .ch-membership-hub-content{opacity:.48!important;transform:translateY(2px)!important;pointer-events:none!important}
.ch-membership-hub-shell.is-loading .ch-membership-hub-content::after{content:"";position:absolute;inset:0;margin:auto;width:26px;height:26px;border-radius:50%;border:3px solid color-mix(in srgb,var(--ch-theme-accent,#2563eb) 22%,transparent);border-top-color:var(--ch-theme-accent,#2563eb);animation:chMembershipSpin .7s linear infinite}
@keyframes chMembershipSpin{to{transform:rotate(360deg)}}
.ch-membership-hub-content h2,.ch-membership-hub-content h3{font-weight:740!important;letter-spacing:-.015em!important;color:var(--ch-theme-text,#172033)!important}
.ch-membership-hub-content p,.ch-membership-hub-content td,.ch-membership-hub-content th,.ch-membership-hub-content label{font-weight:470!important;line-height:1.5!important;color:var(--ch-theme-text,#172033)!important}
.ch-membership-hub-content .pmpro_btn,.ch-membership-hub-content button,.ch-membership-hub-content input[type="submit"]{font-weight:700!important;letter-spacing:0!important}
html[data-ch-theme-mode="dark"] .ch-membership-hub-header,html[data-ch-theme-mode="dark"] .ch-membership-hub-content{box-shadow:0 14px 38px rgba(0,0,0,.24)!important}
@media(max-width:782px){
  .ch-membership-hub-shell{margin:7px 8px 22px!important}
  .ch-membership-hub-header{padding:17px 15px 0!important;border-radius:16px!important}
  .ch-membership-hub-header h1{font-size:25px!important}
  .ch-membership-hub-intro{font-size:12.5px!important}
  .ch-membership-hub-tabs{margin-top:12px!important}
  .ch-membership-hub-tab{min-height:40px!important;padding:7px 11px!important;font-size:12.5px!important}
  .ch-membership-hub-content{padding:15px!important;border-radius:16px!important}
}

/* Better Messages launcher: keep BM's geometry/functionality, but make the
   native desktop widget feel integrated with CommunityHub. */
body.ch-theme .bp-better-messages-list.bm-opened{animation:chBmOpen .2s cubic-bezier(.2,.8,.2,1) both!important;transform-origin:bottom right!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;box-shadow:0 20px 54px rgba(15,23,42,.22)!important}
@keyframes chBmOpen{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Individual WooCommerce product: crisp readable surfaces in both modes. */
body.single-product .product{color:var(--ch-theme-text,#172033)!important}
body.single-product .product .summary{padding:18px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:18px!important;background:var(--ch-theme-surface,#fff)!important;box-shadow:0 10px 30px rgba(15,23,42,.06)!important}
body.single-product .product .product_title{font-size:clamp(24px,3vw,34px)!important;line-height:1.12!important;font-weight:760!important;letter-spacing:-.025em!important;color:var(--ch-theme-text,#172033)!important}
body.single-product .product .price{font-size:20px!important;font-weight:760!important;color:var(--ch-theme-accent,#0080ff)!important}
body.single-product .woocommerce-product-details__short-description,body.single-product .product .summary p,body.single-product .product .summary label{color:var(--ch-theme-text,#172033)!important;line-height:1.55!important}
body.single-product .variations,body.single-product .variations td,body.single-product .variations th{color:var(--ch-theme-text,#172033)!important;background:transparent!important}
body.single-product select,body.single-product input.qty{color:var(--ch-theme-text,#172033)!important;background:var(--ch-theme-surface,#fff)!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:10px!important}
body.single-product .woocommerce-tabs,body.single-product .related.products,body.single-product .up-sells{color:var(--ch-theme-text,#172033)!important}
html[data-ch-theme-mode="dark"] body.single-product .product .summary{background:#111827!important;border-color:#334155!important}
html[data-ch-theme-mode="dark"] body.single-product select,html[data-ch-theme-mode="dark"] body.single-product input.qty{background:#0f172a!important;border-color:#334155!important;color:#f8fafc!important}
@media(max-width:782px){body.single-product .product .summary{padding:14px!important;border-radius:15px!important}body.single-product .product .product_title{font-size:25px!important}body.single-product .product .price{font-size:18px!important}}

/* =========================================================
   v0.3.37 — locked rail recovery + focused polish
   ========================================================= */
/* IMPORTANT: Rail geometry is intentionally NOT redefined here. The approved
   v0.2.22-v0.2.24 Community standard and v0.3.25 non-Community inheritance
   earlier in this stylesheet are the authority. Route-specific left/right/
   both/none settings remain independent. */

/* WooCommerce product copy should breathe inside the card/surface. */
body.single-product .woocommerce-product-details__short-description{
  margin:14px 0 16px!important;padding:12px 14px!important;border-radius:12px!important;
  background:var(--ch-theme-surface-soft,#f6f8fb)!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  color:var(--ch-theme-text,#172033)!important;line-height:1.6!important;
}
body.single-product .woocommerce-product-details__short-description p{margin:0 0 9px!important}body.single-product .woocommerce-product-details__short-description p:last-child{margin-bottom:0!important}
html[data-ch-theme-mode="dark"] body.single-product .woocommerce-product-details__short-description{background:#131c2b!important;border-color:#334155!important;color:#f1f5f9!important}

/* Better Messages full-screen/mobile surfaces own the viewport; CommunityHub's
   fixed bottom nav must get out of the way while BM is active. */
@media(max-width:782px){
  body:has(.bp-messages-full-screen) .ch-theme-community-bar--bottom,
  body:has(.bp-messages-mobile) .ch-theme-community-bar--bottom,
  body:has(.bp-messages-wrap-main [data-full-screen="1"]) .ch-theme-community-bar--bottom{display:none!important}
  .bp-messages-full-screen,.bp-messages-mobile{z-index:2147483300!important}
}


/* =========================================================
   v0.3.38 — rail authority + BM flex sizing + commerce polish
   ========================================================= */
/* The desktop rail standard is authoritative here because historical blocks
   accumulated conflicting widths. Route-specific left/right/both/none classes
   still come from the Theme settings; this block only restores their geometry. */
@media (min-width:1540px){
  body.ch-theme .ch-theme-container--community.ch-theme-community-shell,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell{
    --ch-social-stack-width:820px;
    --ch-social-widget-width:340px;
    --ch-social-widget-gap:8px;
  }
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar{
    display:grid!important;align-items:start!important;justify-content:center!important;
    gap:var(--ch-social-widget-gap)!important;column-gap:var(--ch-social-widget-gap)!important;
    width:min(calc(100vw - 32px),1516px)!important;max-width:1516px!important;margin-inline:auto!important;
  }
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-both,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-both{
    grid-template-columns:340px minmax(0,820px) 340px!important;
  }
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-left,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-left{
    grid-template-columns:340px minmax(0,820px)!important;width:1168px!important;max-width:1168px!important;
  }
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-right,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-right{
    grid-template-columns:minmax(0,820px) 340px!important;width:1168px!important;max-width:1168px!important;
  }
  body.ch-theme .ch-theme-container--community .ch-theme-sidebar,
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar>.ch-theme-sidebar{
    width:340px!important;max-width:340px!important;min-width:340px!important;margin:0!important;padding:0!important;
    position:sticky!important;top:var(--ch-community-sidebar-sticky-top,88px)!important;align-self:start!important;
    max-height:none!important;overflow:visible!important;
  }
  body.admin-bar.ch-theme .ch-theme-container--community .ch-theme-sidebar,
  body.admin-bar.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar>.ch-theme-sidebar{
    top:var(--ch-community-sidebar-sticky-top,120px)!important;
  }
  body.ch-theme .ch-theme-container--community .ch-theme-community-content-wrap,
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar>.ch-theme-community-content-wrap{
    width:820px!important;max-width:820px!important;min-width:0!important;margin:0!important;padding:0!important;justify-self:stretch!important;
  }
  body.ch-theme .ch-theme-container--community .ch-theme-sidebar--left{justify-self:end!important}
  body.ch-theme .ch-theme-container--community .ch-theme-sidebar--right{justify-self:start!important}
}
/* At desktop widths that cannot physically fit 1516px, do not squash the
   approved dimensions. Preserve the center lane and only render configured
   single-rail layouts at full size. */
@media (min-width:1180px) and (max-width:1539px){
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-left,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-left,
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-right,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-right{
    --ch-social-stack-width:820px;--ch-social-widget-width:340px;--ch-social-widget-gap:8px;
    display:grid!important;justify-content:center!important;gap:8px!important;width:1168px!important;max-width:calc(100vw - 24px)!important;margin-inline:auto!important;
  }
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-left,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-left{grid-template-columns:340px minmax(0,820px)!important}
  body.ch-theme .ch-theme-container--community.ch-theme-layout--sidebar-right,
  body.ch-theme .ch-theme-container--community .ch-theme-community-shell.ch-theme-layout--sidebar-right{grid-template-columns:minmax(0,820px) 340px!important}
}

/* Better Messages floating mini chats are BM-owned.
 * CommunityHub deliberately does not set their width, height, flex layout,
 * message-list sizing, composer sizing, or window position. This preserves
 * Better Messages native multi-chat side-by-side geometry. */

/* When an actual BM chat widget is open, the optional bottom Community nav
   yields the viewport so the composer is never hidden behind it. */
body.ch-theme.ch-bm-chat-open .ch-theme-community-bar--bottom{display:none!important}

/* X/Facebook embeds must remain wholly inside a CommunityHub activity card. */
body.ch-theme .ch-social-embed--x,body.ch-theme .ch-social-embed--facebook{width:100%!important;max-width:100%!important;overflow:visible!important;border-radius:14px!important}
body.ch-theme .ch-social-embed--facebook iframe{display:block!important;width:100%!important;max-width:100%!important;border:0!important;overflow:visible!important}
body.ch-theme .ch-social-embed--facebook iframe{height:520px!important;min-height:520px!important}

/* Custom badge icon + pill optical alignment. */
body.ch-theme .ch-user-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;min-height:20px!important;padding:2px 7px!important;line-height:1!important;vertical-align:middle!important}
body.ch-theme .ch-user-badge-img{display:block!important;width:14px!important;height:14px!important;min-width:14px!important;object-fit:contain!important;margin:0!important;border-radius:3px!important;filter:drop-shadow(0 1px 1px rgba(0,0,0,.16))}
body.ch-theme .ch-user-badge-emoji{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:14px!important;height:14px!important;line-height:14px!important;font-size:12px!important;margin:0!important}
body.ch-theme .ch-user-badge-label{display:inline-flex!important;align-items:center!important;line-height:1!important;font-size:10px!important;font-weight:650!important;letter-spacing:.005em!important;margin:0!important;padding:0!important}

/* WooCommerce breadcrumb and product copy: explicit contrast in both modes. */
body.ch-theme.single-product .woocommerce-breadcrumb{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:5px!important;margin:0 0 14px!important;padding:9px 12px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:12px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-muted,#64748b)!important;font-size:12px!important;line-height:1.35!important}
body.ch-theme.single-product .woocommerce-breadcrumb a{color:var(--ch-theme-text,#172033)!important;font-weight:650!important;text-decoration:none!important}
body.ch-theme.single-product .woocommerce-product-details__short-description,
body.ch-theme.single-product .woocommerce-product-details__short-description *{color:var(--ch-theme-text,#172033)!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-breadcrumb,
body.ch-theme-mode-dark.single-product .woocommerce-breadcrumb{background:#111827!important;border-color:#334155!important;color:#94a3b8!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-breadcrumb a,
body.ch-theme-mode-dark.single-product .woocommerce-breadcrumb a{color:#f8fafc!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-product-details__short-description,
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-product-details__short-description *,
body.ch-theme-mode-dark.single-product .woocommerce-product-details__short-description,
body.ch-theme-mode-dark.single-product .woocommerce-product-details__short-description *{color:#f8fafc!important}

/* =========================================================
   v0.3.39 — focused recovery: Saved mobile, BM contrast,
   WooCommerce description/breadcrumb consistency.
   ========================================================= */

/* Saved Posts: keep the count in normal flow and compact enough that it can
   never overlap the mobile action/nav row. */
@media (max-width:781px){
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:8px!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header .ch-bookmarks-actions,
  body.ch-theme.ch-route-saved .ch-bookmarks-header .ch-bookmarks-actions,
  body.ch-theme .ch-saved-page .ch-bookmarks-header .ch-bookmarks-actions{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:7px!important;
    min-width:0!important;
  }
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-count,
  body.ch-theme.ch-route-saved .ch-bookmarks-count,
  body.ch-theme .ch-saved-page .ch-bookmarks-count,
  body.ch-theme .ch-saved-page .ch-bookmarks-count-zero-move{
    position:static!important;
    inset:auto!important;
    align-self:flex-start!important;
    max-width:100%!important;
    margin:0!important;
    padding:5px 9px!important;
    font-size:12px!important;
    line-height:1.2!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    transform:none!important;
  }
  body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-nav,
  body.ch-theme .ch-saved-page .ch-bookmarks-nav{
    position:static!important;
    inset:auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    transform:none!important;
  }
}

/* WooCommerce: one breadcrumb language across Shop/category/product/cart/
   checkout/account, and the actual long Description tab panel gets the same
   polished card treatment as the product summary. */
body.ch-theme.woocommerce .woocommerce-breadcrumb,
body.ch-theme.woocommerce-page .woocommerce-breadcrumb{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:5px!important;
  margin:0 0 14px!important;
  padding:9px 12px!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:12px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-muted,#64748b)!important;
  font-size:12px!important;
  line-height:1.35!important;
}
body.ch-theme.woocommerce .woocommerce-breadcrumb a,
body.ch-theme.woocommerce-page .woocommerce-breadcrumb a{
  color:var(--ch-theme-text,#172033)!important;
  font-weight:650!important;
  text-decoration:none!important;
}
body.ch-theme.single-product .woocommerce-tabs .panel,
body.ch-theme.single-product .woocommerce-Tabs-panel,
body.ch-theme.single-product .woocommerce-Tabs-panel--description{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0 0 18px!important;
  padding:18px 20px!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:14px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#172033)!important;
  line-height:1.62!important;
}
body.ch-theme.single-product .woocommerce-tabs .panel > :first-child,
body.ch-theme.single-product .woocommerce-Tabs-panel > :first-child{margin-top:0!important}
body.ch-theme.single-product .woocommerce-tabs .panel > :last-child,
body.ch-theme.single-product .woocommerce-Tabs-panel > :last-child{margin-bottom:0!important}
body.ch-theme.single-product .woocommerce-tabs .panel :is(p,li,span,strong,em,h1,h2,h3,h4,h5,h6,td,th),
body.ch-theme.single-product .woocommerce-Tabs-panel :is(p,li,span,strong,em,h1,h2,h3,h4,h5,h6,td,th){color:inherit!important}
body.ch-theme.single-product .woocommerce-tabs .panel ul,
body.ch-theme.single-product .woocommerce-tabs .panel ol,
body.ch-theme.single-product .woocommerce-Tabs-panel ul,
body.ch-theme.single-product .woocommerce-Tabs-panel ol{padding-left:1.35rem!important;margin:.65rem 0 1rem!important}
body.ch-theme.single-product .woocommerce-tabs .panel li,
body.ch-theme.single-product .woocommerce-Tabs-panel li{margin:.28rem 0!important;padding-left:.12rem!important}
html[data-ch-theme-mode="dark"] body.ch-theme.woocommerce .woocommerce-breadcrumb,
html[data-ch-theme-mode="dark"] body.ch-theme.woocommerce-page .woocommerce-breadcrumb,
body.ch-theme-mode-dark.woocommerce .woocommerce-breadcrumb,
body.ch-theme-mode-dark.woocommerce-page .woocommerce-breadcrumb{
  background:#111827!important;border-color:#334155!important;color:#94a3b8!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme.woocommerce .woocommerce-breadcrumb a,
html[data-ch-theme-mode="dark"] body.ch-theme.woocommerce-page .woocommerce-breadcrumb a,
body.ch-theme-mode-dark.woocommerce .woocommerce-breadcrumb a,
body.ch-theme-mode-dark.woocommerce-page .woocommerce-breadcrumb a{color:#f8fafc!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs .panel,
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-Tabs-panel,
body.ch-theme-mode-dark.single-product .woocommerce-tabs .panel,
body.ch-theme-mode-dark.single-product .woocommerce-Tabs-panel{
  background:#111827!important;
  border-color:#334155!important;
  color:#e5edf7!important;
}
@media(max-width:781px){
  body.ch-theme.single-product .woocommerce-tabs .panel,
  body.ch-theme.single-product .woocommerce-Tabs-panel{padding:14px!important;border-radius:12px!important;font-size:13px!important}
  body.ch-theme.woocommerce .woocommerce-breadcrumb,
  body.ch-theme.woocommerce-page .woocommerce-breadcrumb{padding:8px 10px!important;font-size:11px!important;margin-bottom:10px!important}
}

/* =========================================================
   v0.3.40 — focused mobile/header, badge, social embed and
   WooCommerce readability recovery.
   ========================================================= */

/* Badge icon-only must beat later generic badge-label rules from either Core
   or Theme while preserving the label in the accessible name/tooltip. */
@media (min-width:783px){
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge-label{display:none!important}
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge{width:24px!important;height:24px!important;min-width:24px!important;padding:0!important;gap:0!important;justify-content:center!important}
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge-img{width:17px!important;height:17px!important;min-width:17px!important}
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge-emoji{width:17px!important;height:17px!important;font-size:14px!important}
}
@media (max-width:782px){
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge-label{display:none!important}
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge{width:24px!important;height:24px!important;min-width:24px!important;padding:0!important;gap:0!important;justify-content:center!important}
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge-img{width:17px!important;height:17px!important;min-width:17px!important}
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge-emoji{width:17px!important;height:17px!important;font-size:14px!important}
}

/* Saved Posts mobile: use the proven header + continuation pattern rather than
   overlaying the count and nav in the same grid cell. This keeps the counter
   above the Community/Members/Notifications/Saved buttons at every width. */
@media (max-width:781px){
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell,
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell,
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;width:100%!important;max-width:100%!important;min-width:0!important;
  }
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero{
    order:1!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;position:relative!important;inset:auto!important;z-index:1!important;
    width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:14px 13px 11px!important;
    border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;overflow:hidden!important;
  }
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme.ch-route-saved .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero .ch-bookmarks-count,
  html body.ch-theme .ch-saved-page .ch-bookmarks-count-zero-move{
    position:static!important;inset:auto!important;display:inline-flex!important;align-self:flex-start!important;width:auto!important;max-width:100%!important;height:auto!important;min-height:28px!important;
    margin:8px 0 0!important;padding:4px 8px!important;transform:none!important;white-space:nowrap!important;font-size:11px!important;line-height:1.15!important;
  }
  html body.ch-theme .ch-theme-community-shell--saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme.ch-route-saved .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-bookmarks-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-shell > .ch-bookmarks-nav:not(.ch-bookmarks-nav-in-header),
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav-zero-move{
    order:2!important;position:static!important;inset:auto!important;z-index:1!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;
    gap:7px!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;margin:0 0 12px!important;padding:7px 11px 12px!important;transform:none!important;
    background:var(--ch-theme-surface,#fff)!important;border:1px solid var(--ch-theme-border,#d9e3f0)!important;border-top:0!important;border-radius:0 0 18px 18px!important;box-shadow:0 14px 32px rgba(16,24,40,.06)!important;overflow:hidden!important;
  }
  html body.ch-theme .ch-saved-page .ch-bookmarks-nav a{flex:0 0 auto!important;min-height:32px!important;padding:7px 10px!important;margin:0!important;white-space:nowrap!important}
  html body.ch-theme .ch-saved-page .ch-bookmarks-list,
  html body.ch-theme .ch-saved-page .ch-bookmarks-empty,
  html body.ch-theme .ch-saved-page .ch-feed{order:3!important}
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-saved-page .ch-bookmarks-nav,
  body.ch-theme-mode-dark .ch-saved-page .ch-bookmarks-nav{background:#111827!important;border-color:#263241!important}
}

/* Social provider frames: deterministic, centered and contained. */
body.ch-theme .ch-social-embed{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:10px auto 0!important;overflow:hidden!important}
body.ch-theme .ch-social-embed iframe{display:block!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0 auto!important;border:0!important}
body.ch-theme .ch-social-embed--facebook iframe{height:520px!important;min-height:420px!important}
body.ch-theme .ch-social-embed--instagram iframe{height:760px!important;min-height:560px!important}
body.ch-theme .ch-social-embed--tiktok iframe{height:740px!important;min-height:560px!important}
@media(max-width:781px){
  body.ch-theme .ch-social-embed--facebook iframe{height:min(72dvh,620px)!important;min-height:360px!important}
  body.ch-theme .ch-social-embed--instagram iframe{height:min(82dvh,760px)!important;min-height:520px!important}
  body.ch-theme .ch-social-embed--tiktok iframe{height:min(82dvh,740px)!important;min-height:520px!important}
}

/* WooCommerce product tabs themselves need readable states, not only the
   panel underneath. Preserve product-description media rather than flattening
   it into text-only content. */
body.ch-theme.single-product .woocommerce-tabs ul.tabs,
body.ch-theme.single-product .woocommerce-tabs .wc-tabs{
  display:flex!important;flex-wrap:wrap!important;gap:7px!important;margin:0 0 10px!important;padding:0!important;border:0!important;background:transparent!important;
}
body.ch-theme.single-product .woocommerce-tabs ul.tabs::before,
body.ch-theme.single-product .woocommerce-tabs ul.tabs::after{display:none!important}
body.ch-theme.single-product .woocommerce-tabs ul.tabs li{
  margin:0!important;padding:0!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:999px!important;background:var(--ch-theme-surface,#fff)!important;box-shadow:none!important;
}
body.ch-theme.single-product .woocommerce-tabs ul.tabs li::before,
body.ch-theme.single-product .woocommerce-tabs ul.tabs li::after{display:none!important}
body.ch-theme.single-product .woocommerce-tabs ul.tabs li a{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:34px!important;padding:7px 12px!important;color:var(--ch-theme-text,#172033)!important;font-size:12px!important;font-weight:700!important;line-height:1.15!important;text-decoration:none!important;
}
body.ch-theme.single-product .woocommerce-tabs ul.tabs li.active{background:var(--ch-theme-accent,#0b84ff)!important;border-color:var(--ch-theme-accent,#0b84ff)!important}
body.ch-theme.single-product .woocommerce-tabs ul.tabs li.active a{color:#fff!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs ul.tabs li,
body.ch-theme-mode-dark.single-product .woocommerce-tabs ul.tabs li{background:#111827!important;border-color:#334155!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs ul.tabs li a,
body.ch-theme-mode-dark.single-product .woocommerce-tabs ul.tabs li a{color:#e5edf7!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs ul.tabs li.active,
body.ch-theme-mode-dark.single-product .woocommerce-tabs ul.tabs li.active{background:#1687ff!important;border-color:#1687ff!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs ul.tabs li.active a,
body.ch-theme-mode-dark.single-product .woocommerce-tabs ul.tabs li.active a{color:#fff!important}
body.ch-theme.single-product .woocommerce-tabs .panel img,
body.ch-theme.single-product .woocommerce-Tabs-panel img{display:block!important;max-width:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;margin:14px auto!important;border-radius:10px!important}
body.ch-theme.single-product .woocommerce-tabs .panel figure,
body.ch-theme.single-product .woocommerce-Tabs-panel figure{max-width:100%!important;margin:14px auto!important}
@media(max-width:781px){
 body.ch-theme.single-product .woocommerce-tabs ul.tabs{gap:6px!important}
 body.ch-theme.single-product .woocommerce-tabs ul.tabs li a{min-height:32px!important;padding:6px 10px!important;font-size:11px!important}
}


/* =========================================================
   v0.3.41 — cleanup/recovery: Saved header, BM dark text,
   badge scale/shape bridge, Woo tabs, X auto-size.
   ========================================================= */
/* Saved Posts uses the same one-card social-header structure on mobile. */
@media(max-width:781px){
  body.ch-theme .ch-saved-page .ch-bookmarks-shell{display:block!important;width:100%!important;max-width:100%!important;overflow-x:clip!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-header.ch-page-hero{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:9px!important;padding:12px 13px!important;margin:0 0 12px!important;border-radius:18px!important;overflow:hidden!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-heading{min-width:0!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-actions{position:static!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;transform:none!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-count{position:static!important;align-self:flex-start!important;display:inline-flex!important;align-items:baseline!important;gap:4px!important;margin:0!important;padding:0!important;min-height:0!important;background:transparent!important;border:0!important;box-shadow:none!important;transform:none!important;white-space:nowrap!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-count span{font-size:12px!important;font-weight:750!important;line-height:1!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-count small{font-size:11px!important;line-height:1!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-in-header{position:static!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:6px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;transform:none!important;overflow:visible!important}
  body.ch-theme .ch-saved-page .ch-bookmarks-nav-in-header a{flex:0 0 auto!important;min-height:32px!important;padding:7px 10px!important;margin:0!important;font-size:12px!important;line-height:1.1!important;white-space:nowrap!important}
}
/* Compact badge presentation; Core owns shape classes, Theme only bridges polish. */
body.ch-theme .ch-user-badge{min-height:18px!important;padding:2px 6px!important;gap:3px!important;font-size:9px!important}
body.ch-theme .ch-user-badge-img{width:12px!important;height:12px!important;min-width:12px!important}
body.ch-theme .ch-user-badge-label{font-size:9px!important}
body.ch-theme .ch-user-badge-shape-rounded{border-radius:6px!important}
body.ch-theme .ch-user-badge-shape-square{border-radius:2px!important}
/* X widgets.js must own generated iframe height; fixed Theme heights caused crop. */
body.ch-theme .ch-social-embed--x{display:flex!important;justify-content:center!important;overflow:visible!important;max-width:100%!important}
body.ch-theme .ch-social-embed--x .twitter-tweet{width:100%!important;max-width:550px!important;margin:0 auto!important}
body.ch-theme .ch-social-embed--x iframe.twitter-tweet-rendered{width:100%!important;max-width:550px!important;min-height:0!important;height:auto!important;margin:0 auto!important}
/* WooCommerce tabs: keep their existing compact shape, harden readable states. */
body.ch-theme.single-product .woocommerce-tabs ul.tabs li a{color:#172033!important;background:transparent!important;text-shadow:none!important}
body.ch-theme.single-product .woocommerce-tabs ul.tabs li.active a{color:#fff!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs ul.tabs li:not(.active) a,
body.ch-theme-mode-dark.single-product .woocommerce-tabs ul.tabs li:not(.active) a{color:#eaf1fb!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-tabs ul.tabs li.active a,
body.ch-theme-mode-dark.single-product .woocommerce-tabs ul.tabs li.active a{color:#fff!important}
body.ch-theme.single-product .woocommerce-Tabs-panel img[data-src],body.ch-theme.single-product .woocommerce-Tabs-panel img[data-lazy-src]{max-width:100%!important;height:auto!important}


/* =========================================================
   v0.3.42 — Better Messages ownership, reward banner, badge shapes.
   ========================================================= */
/* Better Messages owns all widget colors through its own Customizer. CommunityHub
   deliberately does not force --bm-* variables or message colors here. */

/* Reward celebration: premium banner directly below the main site header rather
   than a large side toast. Core positions --ch-reward-banner-top at runtime. */
.ch-reward-toast{
  position:fixed!important;left:50%!important;right:auto!important;top:var(--ch-reward-banner-top,64px)!important;bottom:auto!important;
  width:min(980px,calc(100vw - 24px))!important;max-width:980px!important;min-width:0!important;
  transform:translate(-50%,-10px) scale(.99)!important;display:flex!important;justify-content:center!important;
  padding:9px 16px!important;gap:10px!important;border:2px solid #c8a84b!important;border-radius:0 0 14px 14px!important;
  background:linear-gradient(90deg,#090907,#17140d 50%,#090907)!important;color:#f5f0e8!important;
  box-shadow:0 10px 26px rgba(0,0,0,.28),0 0 20px rgba(200,168,75,.28)!important;
}
.ch-reward-toast.is-visible{transform:translate(-50%,0) scale(1)!important}
.ch-reward-toast-icon{width:30px!important;height:30px!important;flex-basis:30px!important;font-size:16px!important}
.ch-reward-toast-copy{display:flex!important;align-items:baseline!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important}
.ch-reward-toast-copy strong{font-size:13px!important}.ch-reward-toast-copy span{font-size:12px!important}.ch-reward-toast-copy small{font-size:10px!important;color:#f0cf66!important}
@media(max-width:782px){
  .ch-reward-toast{width:calc(100vw - 12px)!important;padding:8px 10px!important;border-radius:0 0 12px 12px!important}
  .ch-reward-toast-copy{gap:5px!important}.ch-reward-toast-copy small{display:none!important}
}

/* Smaller, ordered custom badges with shape support. */
body.ch-theme .ch-user-badges{gap:3px!important}
body.ch-theme .ch-user-badge{min-height:16px!important;padding:1px 5px!important;gap:2px!important;font-size:8px!important;border-width:1px!important}
body.ch-theme .ch-user-badge-img{width:11px!important;height:11px!important;min-width:11px!important}
body.ch-theme .ch-user-badge-emoji{width:11px!important;height:11px!important;font-size:10px!important;line-height:11px!important}
body.ch-theme .ch-user-badge-label{font-size:8.5px!important;line-height:1!important;font-weight:650!important}
body.ch-theme .ch-user-badge-shape-pill{border-radius:999px!important}
body.ch-theme .ch-user-badge-shape-rounded{border-radius:5px!important}
body.ch-theme .ch-user-badge-shape-square{border-radius:1px!important}
body.ch-theme .ch-user-badge-shape-circle{border-radius:50%!important;aspect-ratio:1/1;padding-inline:3px!important}
body.ch-theme .ch-user-badge-shape-shield{border-radius:4px 4px 8px 8px!important;clip-path:polygon(8% 0,92% 0,100% 72%,50% 100%,0 72%)!important;padding-bottom:3px!important}
body.ch-theme .ch-user-badge-shape-seal{clip-path:polygon(50% 0,61% 11%,76% 5%,83% 19%,100% 21%,94% 38%,100% 50%,91% 63%,96% 79%,79% 83%,72% 100%,56% 93%,44% 100%,28% 93%,21% 83%,4% 79%,9% 63%,0 50%,6% 38%,0 21%,17% 19%,24% 5%,39% 11%)!important;padding:4px 7px!important;border-radius:0!important}
body.ch-theme .ch-user-badge-shape-burst{clip-path:polygon(50% 0,60% 14%,75% 7%,80% 23%,97% 25%,87% 40%,100% 50%,87% 60%,97% 75%,80% 77%,75% 93%,60% 86%,50% 100%,40% 86%,25% 93%,20% 77%,3% 75%,13% 60%,0 50%,13% 40%,3% 25%,20% 23%,25% 7%,40% 14%)!important;border-radius:0!important;padding:4px 7px!important}
body.ch-theme .ch-user-badge-shape-hexagon{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)!important;border-radius:0!important;padding-inline:7px!important}
body.ch-theme .ch-user-badge-shape-diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)!important;border-radius:0!important;padding:5px 9px!important}
body.ch-theme .ch-user-badge-shape-ticket{clip-path:polygon(0 0,100% 0,100% 35%,92% 50%,100% 65%,100% 100%,0 100%,0 65%,8% 50%,0 35%)!important;border-radius:2px!important;padding-inline:7px!important}
@media(min-width:783px){body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge{width:20px!important;height:20px!important;min-width:20px!important;padding:2px!important}}
@media(max-width:782px){body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge{width:20px!important;height:20px!important;min-width:20px!important;padding:2px!important}}


/* =========================================================
   v0.3.43 — focused badge/BM/groups/commerce/embed recovery
   ========================================================= */
/* Badge sizing is uniform and admin-controlled. */
body.ch-theme .ch-user-badge{
  height:var(--ch-badge-full-desktop,16px)!important;min-height:var(--ch-badge-full-desktop,16px)!important;
  box-sizing:border-box!important;padding:1px calc(var(--ch-badge-full-desktop,16px)*.31)!important;
  font-size:calc(var(--ch-badge-full-desktop,16px)*.52)!important;
}
body.ch-theme .ch-user-badge-img{width:calc(var(--ch-badge-full-desktop,16px)*.68)!important;height:calc(var(--ch-badge-full-desktop,16px)*.68)!important;min-width:calc(var(--ch-badge-full-desktop,16px)*.68)!important}
body.ch-theme .ch-user-badge-emoji{width:calc(var(--ch-badge-full-desktop,16px)*.68)!important;height:calc(var(--ch-badge-full-desktop,16px)*.68)!important;font-size:calc(var(--ch-badge-full-desktop,16px)*.6)!important;line-height:1!important}
body.ch-theme .ch-user-badge-label{font-size:calc(var(--ch-badge-full-desktop,16px)*.52)!important;line-height:1!important}
body.ch-theme .ch-user-badge-shape-seal{clip-path:polygon(50% 0,58% 7%,68% 3%,74% 12%,85% 10%,88% 21%,98% 26%,94% 37%,100% 50%,94% 63%,98% 74%,88% 79%,85% 90%,74% 88%,68% 97%,58% 93%,50% 100%,42% 93%,32% 97%,26% 88%,15% 90%,12% 79%,2% 74%,6% 63%,0 50%,6% 37%,2% 26%,12% 21%,15% 10%,26% 12%,32% 3%,42% 7%)!important;border-radius:0!important}
body.ch-theme .ch-user-badge-shape-burst{clip-path:polygon(50% 0,60% 18%,75% 7%,78% 28%,100% 25%,84% 42%,100% 50%,84% 58%,100% 75%,78% 72%,75% 93%,60% 82%,50% 100%,40% 82%,25% 93%,22% 72%,0 75%,16% 58%,0 50%,16% 42%,0 25%,22% 28%,25% 7%,40% 18%)!important;border-radius:0!important}
body.ch-theme .ch-user-badge-shape-tag{clip-path:polygon(0 0,82% 0,100% 50%,82% 100%,0 100%,8% 50%)!important;border-radius:0!important}
body.ch-theme .ch-user-badge-shape-octagon{clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%)!important;border-radius:0!important}
body.ch-theme .ch-user-badge-shape-bookmark{clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)!important;border-radius:0!important}
body.ch-theme .ch-user-badge-shape-chevron{clip-path:polygon(0 0,82% 0,100% 50%,82% 100%,0 100%,16% 50%)!important;border-radius:0!important}
@media(min-width:783px){
 body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge{width:var(--ch-badge-icon-desktop,18px)!important;height:var(--ch-badge-icon-desktop,18px)!important;min-width:var(--ch-badge-icon-desktop,18px)!important;min-height:var(--ch-badge-icon-desktop,18px)!important;padding:2px!important}
}
@media(max-width:782px){
 body.ch-theme .ch-user-badge{height:var(--ch-badge-full-mobile,16px)!important;min-height:var(--ch-badge-full-mobile,16px)!important;padding:1px calc(var(--ch-badge-full-mobile,16px)*.31)!important;font-size:calc(var(--ch-badge-full-mobile,16px)*.52)!important}
 body.ch-theme .ch-user-badge-img{width:calc(var(--ch-badge-full-mobile,16px)*.68)!important;height:calc(var(--ch-badge-full-mobile,16px)*.68)!important;min-width:calc(var(--ch-badge-full-mobile,16px)*.68)!important}
 body.ch-theme .ch-user-badge-emoji{width:calc(var(--ch-badge-full-mobile,16px)*.68)!important;height:calc(var(--ch-badge-full-mobile,16px)*.68)!important;font-size:calc(var(--ch-badge-full-mobile,16px)*.6)!important}
 body.ch-theme .ch-user-badge-label{font-size:calc(var(--ch-badge-full-mobile,16px)*.52)!important}
 body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge{width:var(--ch-badge-icon-mobile,18px)!important;height:var(--ch-badge-icon-mobile,18px)!important;min-width:var(--ch-badge-icon-mobile,18px)!important;min-height:var(--ch-badge-icon-mobile,18px)!important;padding:2px!important}
}
/* Better Messages owns colors; only guarantee readable text if its custom color is too close to the active surface. */
body.bm-messages-dark :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.thread .name,.thread .last-message,.bm-info,.bm-info a,.bm-name,.bm-name a,.bm-system-message,.bm-sticky-date,.chat-header,.chat-header *,.bm-reply,.bm-reply textarea,.bm-reply input){color:rgb(var(--bm-text-color-dark,238,244,252))!important}
body:not(.bm-messages-dark) :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.thread .name,.thread .last-message,.bm-info,.bm-info a,.bm-name,.bm-name a,.bm-system-message,.bm-sticky-date,.chat-header,.chat-header *,.bm-reply,.bm-reply textarea,.bm-reply input){color:rgb(var(--bm-text-color,23,32,51))!important}
/* Group invite page: focused, app-like invitation workspace. */
.ch-theme .ch-group-invite-panel{padding:22px!important;border-radius:18px!important;overflow:hidden}
.ch-theme .ch-group-invite-intro{display:flex;align-items:flex-start;gap:12px;padding:0 0 18px;border-bottom:1px solid var(--ch-theme-border)}
.ch-theme .ch-group-invite-intro h2{margin:0;color:var(--ch-theme-text);font-size:1.15rem;font-weight:800}.ch-theme .ch-group-invite-intro p{margin:4px 0 0;color:var(--ch-theme-muted);line-height:1.5}
.ch-theme .ch-group-invite-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--ch-group-accent-soft);color:var(--ch-group-accent);font-size:24px;font-weight:500}
.ch-theme .ch-group-invite-form{margin-top:18px;padding:14px;border:1px solid var(--ch-theme-border);border-radius:14px;background:var(--ch-theme-surface-soft)}
.ch-theme .ch-group-invite-search input{background:var(--ch-theme-surface)!important}
.ch-theme .ch-group-suggested-member{padding:12px!important;background:var(--ch-theme-surface)!important;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.ch-theme .ch-group-suggested-member .ch-group-secondary-button{min-width:76px}
@media(min-width:1050px){.ch-theme .ch-group-suggested-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:782px){.ch-theme .ch-group-invite-panel{padding:15px!important}.ch-theme .ch-group-invite-form{padding:11px!important}.ch-theme .ch-group-suggested-grid{grid-template-columns:1fr!important}}
/* WooCommerce Additional Information: readable in both modes. */
body.ch-theme.single-product .woocommerce-Tabs-panel--additional_information :is(table,tbody,tr,th,td,p,span,strong){color:#172033!important}
body.ch-theme.single-product .woocommerce-Tabs-panel--additional_information th{background:#f6f8fb!important;color:#172033!important}
body.ch-theme.single-product .woocommerce-Tabs-panel--additional_information td{background:#fff!important;color:#334155!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-Tabs-panel--additional_information :is(table,tbody,tr,th,td,p,span,strong),body.ch-theme-mode-dark.single-product .woocommerce-Tabs-panel--additional_information :is(table,tbody,tr,th,td,p,span,strong){color:#eaf1fb!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-Tabs-panel--additional_information th,body.ch-theme-mode-dark.single-product .woocommerce-Tabs-panel--additional_information th{background:#18263a!important;color:#f8fafc!important}
html[data-ch-theme-mode="dark"] body.ch-theme.single-product .woocommerce-Tabs-panel--additional_information td,body.ch-theme-mode-dark.single-product .woocommerce-Tabs-panel--additional_information td{background:#111c2d!important;color:#dbe7f5!important}
/* Social providers blocked by browser privacy tools still show an intentional fallback action, never a naked URL. */
.ch-social-embed-provider-link{display:inline-flex;align-items:center;justify-content:center;margin:8px auto 0;padding:7px 11px;border:1px solid var(--ch-theme-border,#dbe3ec);border-radius:9px;color:var(--ch-theme-text,#172033);background:var(--ch-theme-surface,#fff);font-size:.78rem;font-weight:750;text-decoration:none}
.ch-social-embed-provider-link:hover{border-color:var(--ch-theme-accent,#0080ff);color:var(--ch-theme-accent,#0080ff)}


/* =========================================================
   v0.3.44 — regression cleanup: reactions, rails, BM dates, X shell
   ========================================================= */
/* One reaction count, intentionally separate from the Like action. */
.ch-post-reaction-wrap{display:inline-flex!important;align-items:center!important;gap:4px!important}
.ch-post-reaction-wrap>.ch-reaction-total{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;min-width:26px!important;height:28px!important;padding:2px 7px!important;margin:0!important;border:0!important;border-radius:9px!important;background:transparent!important;color:var(--ch-theme-muted,#64748b)!important;font:inherit!important;font-size:12px!important;font-weight:750!important;line-height:1!important;cursor:pointer!important}
.ch-post-reaction-wrap>.ch-reaction-total[hidden]{display:none!important}
.ch-post-reaction-wrap>.ch-reaction-total:hover,.ch-post-reaction-wrap>.ch-reaction-total:focus-visible{background:rgba(0,128,255,.08)!important;color:var(--ch-theme-accent,#0080ff)!important}
.ch-post-reaction-wrap>.ch-reaction-total .ch-reaction-summary{display:inline-flex!important;align-items:center!important;gap:1px!important}
.ch-post-reaction-wrap>.ch-reaction-total .ch-reaction-count{display:inline!important;min-width:0!important;padding:0!important;border:0!important;background:transparent!important;color:inherit!important;font-size:12px!important;font-weight:800!important}
@media(max-width:782px){.ch-post-reaction-wrap>.ch-reaction-total{min-width:32px!important;height:32px!important;padding:3px 8px!important;font-size:13px!important}}

/* Better Messages date separator: the separator chip itself is dark in BM's
   current light and dark skins, so its label must remain readable. */
body.ch-theme :is(.bp-better-messages-list,.bp-better-messages-mini,.bp-messages-wrap) :is(.bm-sticky-date,.bm-date,.bm-date-separator,.bm-messages-date,.date-separator){color:#fff!important}
body.ch-theme :is(.bp-better-messages-list,.bp-better-messages-mini,.bp-messages-wrap) :is(.bm-sticky-date,.bm-date,.bm-date-separator,.bm-messages-date,.date-separator) *{color:#fff!important}

/* Icon-only badges use the exact center of their configured box regardless of
   shape/clip-path. */
body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge,
body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge{display:inline-grid!important;place-items:center!important;align-content:center!important;justify-content:center!important;line-height:1!important}
body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji),
body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji){display:block!important;margin:0!important;position:static!important;transform:none!important}

/* Approved desktop Community rail geometry. The page setting still owns
   left/right/both/none; this block only owns dimensions and gap. */
@media(min-width:1540px){
 body.ch-theme [class*="ch-route-community"] .ch-theme-container--community{--ch-social-stack-width:820px!important;--ch-social-widget-width:340px!important;--ch-social-widget-gap:8px!important;max-width:1516px!important;width:min(calc(100% - 16px),1516px)!important}
 body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell{gap:8px!important;column-gap:8px!important}
 body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both{grid-template-columns:340px 820px 340px!important}
 body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-left{grid-template-columns:340px 820px!important}
 body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-right{grid-template-columns:820px 340px!important}
 body.ch-theme [class*="ch-route-community"] .ch-theme-community-sidebar{width:340px!important;max-width:340px!important;min-width:340px!important}
 body.ch-theme [class*="ch-route-community"] .ch-theme-community-content-wrap{width:820px!important;max-width:820px!important;min-width:0!important}
}
/* Never suppress valid widget output simply because an old wrapper rule exists. */
.ch-theme-sidebar>.ch-theme-widget:not(:empty),.ch-theme-sidebar>.widget:not(:empty),.ch-theme-sidebar>section:not(:empty){display:block}

/* X native card uses the matching provider theme and stays centered. */
.ch-social-embed--x{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important;max-width:100%!important;overflow:hidden!important;background:transparent!important}
.ch-social-embed--x .twitter-tweet,.ch-social-embed--x iframe.twitter-tweet-rendered{width:min(100%,550px)!important;max-width:550px!important;margin:0 auto!important}


/* v0.3.45 — Better Messages compatibility: keep BM authoritative while fixing
 * outgoing-message metadata contrast in light mode. Do not hide/replace BM's
 * call, group-call, screen-share, thread, participant, or composer controls. */
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message.my .bm-time,
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message.mine .bm-time,
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message.is-me .bm-time,
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message[data-is-me="1"] .bm-time,
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message[data-user-id][class*="own"] .bm-time,
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message.my :is(.bm-date,.bm-message-date,time),
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message.mine :is(.bm-date,.bm-message-date,time),
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap .bm-messages-list .bm-message.is-me :is(.bm-date,.bm-message-date,time){color:rgba(255,255,255,.82)!important}



/* v0.3.45 — authoritative icon-only badge centering. */
@media(min-width:783px){
 body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge{
   display:inline-grid!important;place-items:center!important;box-sizing:border-box!important;
   width:var(--ch-badge-icon-desktop,18px)!important;height:var(--ch-badge-icon-desktop,18px)!important;
   min-width:var(--ch-badge-icon-desktop,18px)!important;min-height:var(--ch-badge-icon-desktop,18px)!important;
   padding:0!important;gap:0!important;line-height:1!important;
 }
 body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji){
   display:block!important;margin:auto!important;align-self:center!important;justify-self:center!important;position:static!important;transform:none!important;
 }
}
@media(max-width:782px){
 body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge{
   display:inline-grid!important;place-items:center!important;box-sizing:border-box!important;
   width:var(--ch-badge-icon-mobile,18px)!important;height:var(--ch-badge-icon-mobile,18px)!important;
   min-width:var(--ch-badge-icon-mobile,18px)!important;min-height:var(--ch-badge-icon-mobile,18px)!important;
   padding:0!important;gap:0!important;line-height:1!important;
 }
 body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji){
   display:block!important;margin:auto!important;align-self:center!important;justify-self:center!important;position:static!important;transform:none!important;
 }
}


/* v0.3.46 — Better Messages light-mode date separators. Better Messages owns
 * the messenger palette; this only prevents unreadable dark text on dark date chips. */
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap :is(
  .bm-sticky-date,.bm-date,.bm-date-separator,.bm-messages-date,.date-separator,
  .bm-messages-date-wrapper,.bm-date-wrapper,[class*="date-separator"],[class*="messages-date"]
){color:#fff!important}
body.ch-theme:not(.bm-messages-dark) .bp-messages-wrap :is(
  .bm-sticky-date,.bm-date,.bm-date-separator,.bm-messages-date,.date-separator,
  .bm-messages-date-wrapper,.bm-date-wrapper,[class*="date-separator"],[class*="messages-date"]
) *{color:#fff!important}

/* v0.3.46 — icon-only badges: center the actual visual glyph, not merely its box. */
body.ch-theme :is(.ch-user-badges-icon-only-desktop,.ch-user-badges-icon-only-mobile) .ch-user-badge{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:0!important;text-align:center!important
}
body.ch-theme :is(.ch-user-badges-icon-only-desktop,.ch-user-badges-icon-only-mobile) .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji){
  display:block!important;position:relative!important;inset:auto!important;margin:auto!important;transform:none!important;object-fit:contain!important;object-position:50% 50%!important;line-height:1!important
}

/* =========================================================
   v0.3.47 — mobile reaction interaction/polish + badge breathing room
   ========================================================= */
/* Treat Like + reaction count as one compact action cluster so it occupies the
 * same rhythm as Comment/Repost/Share/Save instead of creating a phantom gap. */
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  gap:1px!important;
  margin:0!important;
  padding:0!important;
}
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-trigger{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding-inline:9px!important;
}
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-total{
  flex:0 0 auto!important;
  min-width:24px!important;
  width:auto!important;
  height:30px!important;
  margin:0!important;
  padding:2px 5px!important;
  border-radius:999px!important;
}
body.ch-theme .ch-post-reaction-wrap>.ch-reaction-total .ch-reaction-people-label{display:none!important}
@media(max-width:782px){
  body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
  }
  body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-trigger{
    min-height:34px!important;
    width:auto!important;
    min-width:0!important;
    padding:7px 9px!important;
  }
  body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-total{
    min-width:28px!important;
    height:34px!important;
    padding:3px 5px!important;
  }
}

/* Icon-only badges need breathing room inside the bubble. Bubble size remains
 * admin-controlled; the artwork intentionally occupies about 58% of it. */
body.ch-theme .ch-user-badges.ch-user-badges-icon-only-desktop .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji){
  width:calc(var(--ch-badge-icon-desktop,18px)*.58)!important;
  height:calc(var(--ch-badge-icon-desktop,18px)*.58)!important;
  min-width:0!important;
  max-width:calc(var(--ch-badge-icon-desktop,18px)*.58)!important;
  max-height:calc(var(--ch-badge-icon-desktop,18px)*.58)!important;
  font-size:calc(var(--ch-badge-icon-desktop,18px)*.52)!important;
}
@media(max-width:782px){
  body.ch-theme .ch-user-badges.ch-user-badges-icon-only-mobile .ch-user-badge :is(.ch-user-badge-img,.ch-user-badge-emoji){
    width:calc(var(--ch-badge-icon-mobile,18px)*.58)!important;
    height:calc(var(--ch-badge-icon-mobile,18px)*.58)!important;
    min-width:0!important;
    max-width:calc(var(--ch-badge-icon-mobile,18px)*.58)!important;
    max-height:calc(var(--ch-badge-icon-mobile,18px)*.58)!important;
    font-size:calc(var(--ch-badge-icon-mobile,18px)*.52)!important;
  }
}

/* =========================================================
   v0.3.48 — conditional reaction counter / action-row rhythm
   ========================================================= */
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap{
  gap:0!important;
}
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-total[hidden]{
  display:none!important;
}
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-total:not([hidden]){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-left:2px!important;
}
/* When nobody else has reacted, the Like cluster occupies exactly the same
   rhythm as any other action button. The counter only joins the row once an
   other-member reaction exists. */
body.ch-theme :is(.ch-feed,.ch-activity-card) .ch-action-row .ch-post-reaction-wrap>.ch-reaction-trigger{
  margin:0!important;
}

/* v0.3.49 — preserve Core reaction bottom-sheet visibility above mobile nav. */
@media (max-width:782px){.ch-theme .ch-reaction-users-panel.is-mobile-sheet.is-visible{display:block!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:2147483300!important}}


/* =========================================================
   v0.3.50 — reward preset authority + mobile reactions + composer order
   ========================================================= */
/* Core supplies per-site colors as CSS vars; these final rules intentionally
   outrank older fixed gold-banner generations so the selected preset is real. */
body.ch-theme .ch-reward-toast{background:var(--ch-reward-bg,#17140a)!important;color:var(--ch-reward-text,#fff8dc)!important;border-color:color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 70%,transparent)!important}
body.ch-theme .ch-reward-toast--gold{background:linear-gradient(90deg,color-mix(in srgb,var(--ch-reward-bg,#17140a) 88%,#000),var(--ch-reward-bg,#17140a),color-mix(in srgb,var(--ch-reward-bg,#17140a) 88%,#000))!important;box-shadow:0 10px 28px rgba(0,0,0,.3),0 0 22px color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 30%,transparent)!important}
body.ch-theme .ch-reward-toast--celebration{background:linear-gradient(135deg,var(--ch-reward-bg,#17140a),color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 45%,var(--ch-reward-bg,#17140a)))!important;border-radius:18px!important;box-shadow:0 18px 50px rgba(15,23,42,.34),0 0 38px color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 45%,transparent)!important}
body.ch-theme .ch-reward-toast--neon{background:#07090d!important;border:2px solid var(--ch-reward-accent,#e9c85e)!important;border-radius:8px!important;box-shadow:0 0 10px var(--ch-reward-accent,#e9c85e),0 0 34px color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 55%,transparent)!important;text-shadow:0 0 8px color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 65%,transparent)!important}
body.ch-theme .ch-reward-toast--minimal{background:var(--ch-reward-bg,#17140a)!important;border:1px solid color-mix(in srgb,var(--ch-reward-text,#fff8dc) 18%,transparent)!important;border-radius:8px!important;box-shadow:0 8px 20px rgba(0,0,0,.18)!important;padding:8px 12px!important}
body.ch-theme .ch-reward-toast--minimal .ch-reward-toast-icon,body.ch-theme .ch-reward-toast--minimal .ch-reward-toast-sparkles{display:none!important}
body.ch-theme .ch-reward-toast .ch-reward-toast-copy strong{color:var(--ch-reward-text,#fff8dc)!important}
body.ch-theme .ch-reward-toast .ch-reward-toast-copy>span,body.ch-theme .ch-reward-toast .ch-reward-toast-copy small{color:var(--ch-reward-accent,#e9c85e)!important}

.ch-reaction-mobile-caret{display:none}
@media(max-width:782px){
  body.ch-theme .ch-post-reaction-wrap>.ch-reaction-trigger{position:relative!important;padding-right:24px!important}
  body.ch-theme .ch-post-reaction-wrap>.ch-reaction-trigger .ch-reaction-mobile-caret{display:inline-flex!important;position:absolute!important;right:5px!important;top:50%!important;transform:translateY(-50%)!important;width:16px!important;height:22px!important;align-items:center!important;justify-content:center!important;font-size:11px!important;line-height:1!important;opacity:.72!important;z-index:2!important}
  body.ch-theme .ch-reaction-users-panel.is-mobile-sheet{left:8px!important;right:8px!important;bottom:calc(74px + env(safe-area-inset-bottom))!important;top:auto!important;width:auto!important;max-width:none!important;position:fixed!important;z-index:2147483640!important}
}
body.ch-theme .ch-composer>.ch-composer-destination{display:flex!important;margin:0 0 10px!important}
body.ch-theme .ch-composer>.ch-composer-textarea{margin-top:0!important}


/* =========================================================
   v0.3.51 — restore attached reward banner + reliable mobile Like
   ========================================================= */
body.ch-theme .ch-reward-toast[class*='ch-reward-toast--pos-']{position:fixed!important;left:50%!important;right:auto!important;top:var(--ch-reward-banner-top,64px)!important;bottom:auto!important;width:min(980px,calc(100vw - 24px))!important;max-width:980px!important;transform:translate(-50%,-10px) scale(.99)!important;border-radius:0 0 14px 14px!important}
body.ch-theme .ch-reward-toast[class*='ch-reward-toast--pos-'].is-visible{transform:translate(-50%,0) scale(1)!important}
body.ch-theme .ch-reward-toast--confetti{background:linear-gradient(120deg,var(--ch-reward-bg,#17140a),color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 34%,var(--ch-reward-bg,#17140a)))!important;box-shadow:0 12px 34px rgba(0,0,0,.34),0 0 28px color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 35%,transparent)!important}
body.ch-theme .ch-reward-toast--fireworks{background:#070707!important;border-color:var(--ch-reward-accent,#e9c85e)!important;box-shadow:0 0 34px color-mix(in srgb,var(--ch-reward-accent,#e9c85e) 50%,transparent)!important}
body.ch-theme .ch-reward-toast--fire{background:linear-gradient(0deg,#210500,#7a1400 48%,#17110b)!important;border-color:#ff7a18!important;box-shadow:0 0 28px rgba(255,86,0,.5)!important}
body.ch-theme .ch-reward-toast--lightning{background:linear-gradient(115deg,#060916,#101b42,#060916)!important;border-color:#8ec5ff!important;box-shadow:0 0 28px rgba(84,157,255,.55)!important}
@media(max-width:782px){
 body.ch-theme .ch-reward-toast[class*='ch-reward-toast--pos-']{left:6px!important;right:6px!important;top:var(--ch-reward-banner-top,64px)!important;bottom:auto!important;width:auto!important;max-width:none!important;transform:translateY(-8px) scale(.99)!important;border-radius:0 0 12px 12px!important}
 body.ch-theme .ch-reward-toast[class*='ch-reward-toast--pos-'].is-visible{transform:translateY(0) scale(1)!important}
 body.ch-theme .ch-post-reaction-wrap>.ch-reaction-trigger{padding-right:6px!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important}
 body.ch-theme .ch-post-reaction-wrap>.ch-reaction-mobile-caret{display:inline-flex!important;position:static!important;transform:none!important;width:22px!important;height:100%!important;min-height:34px!important;margin-left:1px!important;padding:0 4px!important;align-items:center!important;justify-content:center!important;border:0!important;background:transparent!important;color:inherit!important;font-size:12px!important;line-height:1!important;opacity:.76!important;touch-action:manipulation!important;z-index:auto!important}
}


/* v0.3.52 mobile reaction gesture + reward FX authority */
@media(max-width:782px){
  .ch-theme .ch-reaction-trigger,.ch-theme .ch-reaction-mobile-caret{-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important;touch-action:manipulation!important}
  .ch-theme .ch-reaction-trigger img,.ch-theme .ch-reaction-mobile-caret img{-webkit-user-drag:none!important;pointer-events:none!important}
}
.ch-theme .ch-reward-toast--fireworks,.ch-theme .ch-reward-toast--fire,.ch-theme .ch-reward-toast--lightning{overflow:hidden!important}

/* =========================================================
   v0.3.55: Header/menu semantic color-mode synchronization
   Presentation only. Keeps approved header/menu geometry and behavior intact.
   ========================================================= */
body.ch-theme .ch-theme-header,
body.ch-theme .ch-theme-header-top,
body.ch-theme .ch-theme-nav-bar {
	background: color-mix(in srgb, var(--ch-theme-header-bg) 94%, transparent) !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}

body.ch-theme .ch-theme-primary-menu a,
body.ch-theme .ch-theme-community-menu a,
body.ch-theme .ch-theme-site-title,
body.ch-theme .ch-theme-account-link,
body.ch-theme .ch-theme-account-toggle,
body.ch-theme .ch-theme-menu-toggle,
body.ch-theme .ch-theme-mode-toggle {
	color: var(--ch-theme-text) !important;
}

body.ch-theme .ch-theme-primary-menu a:hover,
body.ch-theme .ch-theme-primary-menu a:focus-visible,
body.ch-theme .ch-theme-community-menu a:hover,
body.ch-theme .ch-theme-community-menu a:focus-visible,
body.ch-theme .ch-theme-account-link:hover,
body.ch-theme .ch-theme-account-link:focus-visible {
	color: var(--ch-theme-blue) !important;
}

body.ch-theme .ch-theme-primary-menu .sub-menu,
body.ch-theme .ch-theme-community-menu .sub-menu,
body.ch-theme .ch-theme-menu-panel,
body.ch-theme .ch-theme-account-panel {
	background: var(--ch-theme-surface) !important;
	color: var(--ch-theme-text) !important;
	border-color: var(--ch-theme-border) !important;
}

body.ch-theme .ch-theme-primary-menu .sub-menu a,
body.ch-theme .ch-theme-community-menu .sub-menu a,
body.ch-theme .ch-theme-account-panel a {
	color: var(--ch-theme-text) !important;
}

body.ch-theme .ch-theme-primary-menu .sub-menu a:hover,
body.ch-theme .ch-theme-primary-menu .sub-menu a:focus-visible,
body.ch-theme .ch-theme-community-menu .sub-menu a:hover,
body.ch-theme .ch-theme-community-menu .sub-menu a:focus-visible,
body.ch-theme .ch-theme-account-panel a:hover,
body.ch-theme .ch-theme-account-panel a:focus-visible {
	background: var(--ch-theme-surface-soft) !important;
	color: var(--ch-theme-blue) !important;
}

/* Explicit attribute selectors outrank the historical global dark-link rule. */
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-primary-menu a,
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-menu a,
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-site-title,
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-account-link,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-primary-menu a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-menu a,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-site-title,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-account-link {
	color: var(--ch-theme-text) !important;
}

/* =========================================================
   v0.3.57 — Mobile Community Nav visibility recovery
   Regression Recovery Mode: layout only.
   Replaces the late auto-fit/minmax(0,1fr) grid that can collapse
   later mobile nav tracks to zero width. No behavior/sticky changes.
   ========================================================= */
@media (max-width: 782px) {
  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-community-nav,
  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-menu-list--community {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 2px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow-x: visible !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-community-nav > .ch-theme-nav-pill,
  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-menu-list--community > li:not(.ch-theme-nav-center-spacer-item) {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-menu-list--community > li:not(.ch-theme-nav-center-spacer-item) > a,
  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-community-nav > .ch-theme-nav-pill {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer,
  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-nav-center-spacer-item,
  body.ch-theme .ch-theme-community-bar--bottom .ch-theme-nav-balance-placeholder {
    flex: 0 0 72px !important;
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
  }
}


/* =========================================================
   v0.3.62 — Mobile top shell root-cause recovery
   Built from approved v0.3.59.
   - Adds the missing top-mobile state class in PHP.
   - Supports either the native CommunityHub header or an Elementor header.
   - Measures the actual mobile header height for the top Nav offset.
   - Re-enables only the mobile TOP Community Nav hidden by the historical
     <=960px rule and normalizes it to a compact horizontal row.
   - Bottom Nav Bar is intentionally untouched/frozen.
   ========================================================= */
@media (max-width: 782px) {
  html body.ch-theme > .ch-theme-header,
  html body.ch-theme > .elementor-location-header {
    position: sticky !important;
    position: -webkit-sticky !important;
    top: 0 !important;
    z-index: 999900 !important;
    overflow: visible !important;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile {
    display: block !important;
    position: sticky !important;
    position: -webkit-sticky !important;
    top: var(--ch-mobile-header-stack-height, 64px) !important;
    z-index: 999800 !important;
    max-height: 72px !important;
    overflow: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-header-inner--nav {
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
    padding: 6px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-header-inner--nav::-webkit-scrollbar {
    display: none;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-community-nav,
  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-menu-list--community {
    display: flex !important;
    grid-template-columns: none !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    width: 100% !important;
    min-width: max-content !important;
    overflow: visible !important;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-nav-pill,
  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-menu-list--community > li {
    flex: 1 0 58px !important;
    width: auto !important;
    min-width: 58px !important;
    max-width: none !important;
    margin: 0 !important;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-nav-pill,
  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile .ch-theme-menu-list--community > li > a {
    width: 100% !important;
    min-height: 40px !important;
    padding: 7px 8px !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
  }
}


/* =========================================================
   v0.3.63 — Mobile root scroll-context repair
   Runtime diagnostics confirmed html/body were both computed as
   overflow-x:hidden + overflow-y:auto, creating a root scroll context
   that prevents the otherwise-correct sticky header/top Nav contract
   from behaving consistently on mobile.
   Bottom Nav visual/behavior remains untouched.
   ========================================================= */
@media (max-width: 782px) {
  html:not(.ch-theme-menu-lock),
  html:not(.ch-theme-menu-lock) body.ch-theme {
    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  html body.ch-theme > .ch-theme-header,
  html body.ch-theme > .elementor-location-header {
    top: var(--ch-mobile-adminbar-height, 0px) !important;
  }

  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile {
    top: calc(var(--ch-mobile-adminbar-height, 0px) + var(--ch-mobile-header-stack-height, 64px)) !important;
  }
}


/* =========================================================
   v0.3.64 — Mobile admin-bar/top-Nav stack alignment
   Sticky behavior passed in v0.3.63. The top Nav now follows the
   measured rendered bottom edge of the sticky header so WordPress
   admin-bar offsets cannot be applied differently to the two layers.
   Visual Nav styling is intentionally untouched.
   ========================================================= */
@media (max-width: 782px) {
  html body.ch-theme.ch-community-bar-top-mobile > .ch-theme-community-bar--top.ch-theme-community-bar--mobile {
    top: var(--ch-mobile-top-nav-offset, calc(var(--ch-mobile-adminbar-height, 0px) + var(--ch-mobile-header-stack-height, 64px))) !important;
  }
}


/* v0.3.65 — Mobile top-nav floating POST action.
 * Presentation-only companion to the approved bottom center action.
 * Bottom-nav geometry and v0.3.64 sticky stack remain untouched. */
.ch-theme-mobile-top-action{display:none}
@media (max-width:782px){
  body.ch-community-bar-top-mobile .ch-theme-mobile-top-action{
    position:fixed!important;
    z-index:2147482350!important;
    bottom:max(86px,calc(env(safe-area-inset-bottom,0px) + 68px))!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    min-width:58px!important;
    height:58px!important;
    padding:7px 10px!important;
    border:3px solid var(--ch-theme-surface,#fff)!important;
    border-radius:18px!important;
    background:linear-gradient(180deg,#1594ff,#0878e8)!important;
    color:#fff!important;
    box-shadow:0 10px 26px rgba(0,104,218,.30)!important;
    text-decoration:none!important;
    line-height:1!important;
    -webkit-tap-highlight-color:transparent;
    transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
  }
  body.ch-community-bar-top-mobile .ch-theme-mobile-top-action--left{left:max(16px,env(safe-area-inset-left,0px))!important;right:auto!important}
  body.ch-community-bar-top-mobile .ch-theme-mobile-top-action--right{right:max(16px,env(safe-area-inset-right,0px))!important;left:auto!important}
  body.ch-community-bar-top-mobile .ch-theme-mobile-top-action:hover,
  body.ch-community-bar-top-mobile .ch-theme-mobile-top-action:focus-visible{transform:translateY(-2px) scale(1.02)!important;box-shadow:0 13px 30px rgba(0,104,218,.36)!important;filter:saturate(1.05)}
  body.ch-community-bar-top-mobile .ch-theme-mobile-top-action:active{transform:translateY(0) scale(.96)!important}
  .ch-theme-mobile-top-action-icon{display:flex!important;width:18px!important;height:18px!important;align-items:center!important;justify-content:center!important}
  .ch-theme-mobile-top-action-icon svg{display:block!important;width:18px!important;height:18px!important}
  .ch-theme-mobile-top-action-label{font-size:9px!important;font-weight:900!important;letter-spacing:.045em!important;color:#fff!important}
}
@media (prefers-reduced-motion:reduce){.ch-theme-mobile-top-action{transition:none!important}}

/* =========================================================
   v0.3.67 — Better Messages full-screen geometry handoff
   CommunityHub owns the normal page shell only. When Better
   Messages enters its CSS full-screen state, BM owns viewport
   geometry completely so normal page sizing cannot cap it.
   ========================================================= */
body.ch-theme-better-messages-page.bp-messages-full-screen {
  overflow: hidden !important;
}
body.ch-theme-better-messages-page.bp-messages-full-screen .bp-messages-wrap-main,
body.ch-theme-better-messages-page.bp-messages-full-screen #primary .bp-messages-wrap:not(.bp-better-messages-list):not(.bp-better-messages-mini),
body.ch-theme-better-messages-page.bp-messages-full-screen .ch-profile-content .bp-messages-wrap {
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 100dvh !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  z-index: 2147483500 !important;
}
body.ch-theme-better-messages-page.bp-messages-full-screen .ch-theme-header,
body.ch-theme-better-messages-page.bp-messages-full-screen .ch-theme-community-bar,
body.ch-theme-better-messages-page.bp-messages-full-screen #wpadminbar {
  visibility: hidden !important;
  pointer-events: none !important;
}


/* =========================================================
   v0.3.68 — Better Messages full-screen inner-app handoff
   v0.3.67 proved the outer BM wrapper reaches the viewport.
   This block removes CommunityHub's normal page caps from the
   inner full-page BM app and suppresses the separate floating
   widget only while the full-page app is in full-screen mode.
   ========================================================= */
body.ch-theme-better-messages-page.bp-messages-full-screen .bp-messages-wrap-main > .bp-messages-wrap,
body.ch-theme-better-messages-page.bp-messages-full-screen .bp-messages-wrap-main .bp-messages-wrap:not(.bp-better-messages-list):not(.bp-better-messages-mini) {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.ch-theme-better-messages-page.bp-messages-full-screen .bp-messages-wrap-main > :not(.bp-better-messages-list):not(.bp-better-messages-mini) {
  max-width: none !important;
}
body.ch-theme-better-messages-page.bp-messages-full-screen .bp-better-messages-list,
body.ch-theme-better-messages-page.bp-messages-full-screen .bp-better-messages-mini {
  display: none !important;
}


/* =========================================================
   CommunityHub v0.3.69 — Dedicated Messages page widget guard
   The full Better Messages page is already present here, so the
   separate floating desktop BM widget is redundant. Keep it
   available everywhere else and leave mobile full-page routing
   untouched.
   ========================================================= */
@media (min-width:783px){
  body.ch-theme-better-messages-page .bp-better-messages-list,
  body.ch-theme-better-messages-page .bp-better-messages-mini,
  body.ch-theme-better-messages-page #bp-better-messages-mini-mobile-container{
    display:none!important;
  }
}

/* =========================================================
   v0.3.70 — Desktop top Community Nav sticky contract
   - Desktop top Nav previously had no sticky positioning rule.
   - Reuses the rendered header bottom edge measured by the existing
     sticky-shell helper, including WordPress admin-bar/header height.
   - Mobile sticky geometry and all bottom-Nav behavior remain frozen.
   ========================================================= */
@media (min-width: 783px) {
  html body.ch-theme > .ch-theme-community-bar--top.ch-theme-community-bar--desktop {
    position: sticky !important;
    position: -webkit-sticky !important;
    top: var(--ch-desktop-top-nav-offset, 72px) !important;
    z-index: 990 !important;
    opacity: 1;
    transform: none;
  }
}

/* v0.3.71 — Notifications page dual-mode readability contract
   Theme presentation only. Keep Core notification behavior/markup untouched. */
body.ch-theme .ch-notifications-page {
	background: transparent !important;
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notifications-header,
body.ch-theme .ch-notifications-page .ch-empty-state {
	background: var(--ch-theme-surface) !important;
	background-color: var(--ch-theme-surface) !important;
	border-color: var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notifications-header h1,
body.ch-theme .ch-notifications-page .ch-empty-state h2 {
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notifications-header .ch-page-eyebrow {
	color: var(--ch-theme-blue) !important;
	opacity: 1 !important;
}
body.ch-theme .ch-notifications-header .ch-page-subtitle,
body.ch-theme .ch-notifications-page .ch-empty-state p,
body.ch-theme .ch-notification-meta {
	color: var(--ch-theme-muted) !important;
	opacity: 1 !important;
}
body.ch-theme .ch-notification-row,
body.ch-theme .ch-notification-row:visited {
	background: var(--ch-theme-surface) !important;
	background-color: var(--ch-theme-surface) !important;
	border-color: var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notification-row .ch-notification-main,
body.ch-theme .ch-notification-row .ch-notification-text {
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notification-row:hover,
body.ch-theme .ch-notification-row:focus,
body.ch-theme .ch-notification-row:focus-visible {
	background: color-mix(in srgb, var(--ch-theme-blue) 8%, var(--ch-theme-surface)) !important;
	border-color: color-mix(in srgb, var(--ch-theme-blue) 55%, var(--ch-theme-border)) !important;
	color: var(--ch-theme-text) !important;
	outline: none !important;
}
body.ch-theme .ch-notification-row.is-unread {
	background: color-mix(in srgb, var(--ch-theme-blue) 10%, var(--ch-theme-surface)) !important;
	border-color: color-mix(in srgb, var(--ch-theme-blue) 60%, var(--ch-theme-border)) !important;
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notifications-actions .ch-button,
body.ch-theme .ch-notifications-actions button,
body.ch-theme .ch-notifications-page .ch-empty-state .ch-button {
	background: var(--ch-theme-blue) !important;
	border-color: var(--ch-theme-blue) !important;
	color: #ffffff !important;
}
body.ch-theme .ch-notifications-actions .ch-button:hover,
body.ch-theme .ch-notifications-actions button:hover,
body.ch-theme .ch-notifications-actions .ch-button:focus,
body.ch-theme .ch-notifications-actions button:focus,
body.ch-theme .ch-notifications-actions .ch-button:focus-visible,
body.ch-theme .ch-notifications-actions button:focus-visible,
body.ch-theme .ch-notifications-page .ch-empty-state .ch-button:hover,
body.ch-theme .ch-notifications-page .ch-empty-state .ch-button:focus {
	background: var(--ch-theme-blue-dark) !important;
	border-color: var(--ch-theme-blue-dark) !important;
	color: #ffffff !important;
}
body.ch-theme .ch-notifications-actions .ch-button-secondary,
body.ch-theme .ch-notifications-actions a.ch-button-secondary {
	background: var(--ch-theme-surface-soft) !important;
	border-color: var(--ch-theme-border) !important;
	color: var(--ch-theme-text) !important;
}
body.ch-theme .ch-notifications-actions .ch-button-secondary:hover,
body.ch-theme .ch-notifications-actions a.ch-button-secondary:hover,
body.ch-theme .ch-notifications-actions .ch-button-secondary:focus,
body.ch-theme .ch-notifications-actions a.ch-button-secondary:focus,
body.ch-theme .ch-notifications-actions .ch-button-secondary:focus-visible,
body.ch-theme .ch-notifications-actions a.ch-button-secondary:focus-visible {
	background: color-mix(in srgb, var(--ch-theme-blue) 10%, var(--ch-theme-surface)) !important;
	border-color: color-mix(in srgb, var(--ch-theme-blue) 45%, var(--ch-theme-border)) !important;
	color: var(--ch-theme-text) !important;
}

/* =========================================================
   v0.3.72 — Logged-out desktop Community Nav balance
   - Member-only items (for example Profile) disappear when logged out.
   - Keep the remaining desktop buttons equal-width and centered as one
     visual group without changing approved logged-in or mobile geometry.
   ========================================================= */
@media (min-width: 783px) {
  body.ch-theme.ch-user-logged-out .ch-theme-community-bar--desktop .ch-theme-community-nav {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 6px !important;
  }

  body.ch-theme.ch-user-logged-out .ch-theme-community-bar--desktop .ch-theme-community-nav > .ch-theme-nav-pill {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 96px !important;
    max-width: 126px !important;
    margin: 0 !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* Bottom-center POST layouts keep the existing center gap, but ordinary
     logged-out buttons on either side retain identical visual weight. */
  body.ch-theme.ch-user-logged-out .ch-theme-community-bar--bottom.has-center-action .ch-theme-nav-center-spacer,
  body.ch-theme.ch-user-logged-out .ch-theme-community-bar--bottom.has-center-action .ch-theme-nav-balance-placeholder {
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
  }
}


/* =========================================================
   v0.3.73 — Bottom Nav POST balance correction
   - The balance placeholder represents one missing ordinary nav slot, not
     the 72px center-action gap. Give it the same flex weight as a real item.
   - Limited to bottom Nav layouts with the center POST action enabled.
   ========================================================= */
.ch-theme-community-bar--bottom.has-center-action .ch-theme-nav-balance-placeholder {
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (min-width: 783px) {
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav > .ch-theme-nav-balance-placeholder,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community > .ch-theme-nav-balance-placeholder {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 96px !important;
    max-width: 126px !important;
    margin: 0 !important;
  }
}
@media (max-width: 782px) {
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav > .ch-theme-nav-balance-placeholder,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community > .ch-theme-nav-balance-placeholder {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }
}

/* =========================================================
   v0.3.75 — Bottom POST symmetric inner-button spacing
   The layout script now gives every ordinary bottom-nav item the same
   width on both sides of POST and parks any unused width at the OUTER
   edge of the shorter side. This guarantees that the nearest visible
   buttons sit the same distance from the center POST action.
   ========================================================= */
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav,
.ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community {
  box-sizing: border-box !important;
}


/* =========================================================
   v0.3.76 — Mobile icon-only POST visual center
   The layout script sizes the center spacer from the rendered POST button
   plus equal inner breathing room. This is intentionally mobile/icon-only;
   desktop keeps the approved v0.3.75 spacing geometry.
   ========================================================= */
@media (max-width: 782px) {
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-nav-center-spacer {
    box-sizing: border-box !important;
  }
}


/* CommunityHub v0.3.79 — Desktop header submenu carets.
 * Visual affordance only: existing WordPress menu hover/focus behavior is unchanged. */
@media (min-width: 783px) {
  body.ch-theme .ch-theme-primary-menu--desktop > .ch-theme-menu-list > .menu-item-has-children > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  body.ch-theme .ch-theme-primary-menu--desktop > .ch-theme-menu-list > .menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transform-origin: center;
    opacity: .72;
    flex: 0 0 auto;
    transition: transform .16s ease, opacity .16s ease;
  }

  body.ch-theme .ch-theme-primary-menu--desktop > .ch-theme-menu-list > .menu-item-has-children:hover > a::after,
  body.ch-theme .ch-theme-primary-menu--desktop > .ch-theme-menu-list > .menu-item-has-children:focus-within > a::after {
    opacity: 1;
    transform: translateY(2px) rotate(225deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.ch-theme .ch-theme-primary-menu--desktop > .ch-theme-menu-list > .menu-item-has-children > a::after {
    transition: none;
  }
}


/* v0.3.80 — CommunityHub feedback/suggestions embeds + widget presentation */
.ch-suggestion-embed{color:var(--ch-theme-text,#0f172a)!important}
.ch-suggestion-embed .ch-suggestion-intro{margin:0 0 16px!important}
.ch-suggestion-embed .ch-suggestion-intro h2{margin:0 0 7px!important;font-size:22px!important;line-height:1.18!important;letter-spacing:-.025em!important;color:var(--ch-theme-text,#0f172a)!important}
.ch-suggestion-embed .ch-suggestion-intro p{margin:0!important;color:var(--ch-theme-muted,#64748b)!important}
.ch-suggestion-form select,.ch-suggestion-form input[type="url"],.ch-suggestion-form input[type="file"]{width:100%!important;max-width:100%!important;box-sizing:border-box!important;border:1px solid var(--ch-theme-border,#cbd5e1)!important;border-radius:13px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#0f172a)!important;padding:11px 12px!important;font:inherit!important}
.ch-suggestion-form select{min-height:44px!important}
.ch-suggestion-form textarea[name="suggestion_expected"]{min-height:92px!important}
.ch-suggestion-diagnostic-note{margin:0!important;padding:10px 12px!important;border:1px solid color-mix(in srgb,var(--ch-theme-border,#cbd5e1) 78%,transparent)!important;border-radius:12px!important;background:color-mix(in srgb,var(--ch-theme-surface,#fff) 92%,var(--ch-theme-primary,#2563eb) 8%)!important;color:var(--ch-theme-muted,#64748b)!important;font-size:11px!important;line-height:1.5!important;font-weight:650!important}
.ch-suggestion-embed--compact{display:block!important;max-width:none!important;margin:0!important;padding:0!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:16px!important;background:var(--ch-theme-surface,#fff)!important;box-shadow:0 10px 28px rgba(15,23,42,.06)!important;overflow:hidden!important}
.ch-suggestion-embed--compact>summary{list-style:none!important;cursor:pointer!important;display:flex!important;align-items:center!important;gap:11px!important;padding:14px!important;user-select:none!important}
.ch-suggestion-embed--compact>summary::-webkit-details-marker{display:none!important}
.ch-suggestion-compact-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 34px!important;width:34px!important;height:34px!important;border-radius:50%!important;background:var(--ch-theme-primary,#2563eb)!important;color:#fff!important;font-size:18px!important;font-weight:950!important;box-shadow:0 6px 16px rgba(37,99,235,.22)!important}
.ch-suggestion-compact-summary>span:last-child{display:grid!important;gap:3px!important;min-width:0!important}
.ch-suggestion-compact-summary strong{color:var(--ch-theme-text,#0f172a)!important;font-size:13px!important;line-height:1.25!important}
.ch-suggestion-compact-summary small{color:var(--ch-theme-muted,#64748b)!important;font-size:11px!important;line-height:1.4!important;font-weight:600!important}
.ch-suggestion-embed--compact[open] .ch-suggestion-compact-summary{border-bottom:1px solid var(--ch-theme-border,#dbe3ec)!important}
.ch-suggestion-compact-body{padding:14px!important}
.ch-suggestion-embed--compact .ch-suggestion-form{gap:11px!important}
.ch-suggestion-embed--compact .ch-suggestion-form label>span{font-size:11px!important}
.ch-suggestion-embed--compact .ch-suggestion-form textarea{min-height:120px!important}
.ch-suggestion-embed--compact .ch-suggestion-form textarea[name="suggestion_expected"]{min-height:82px!important}
.ch-suggestion-login-required{padding:12px 14px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:14px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-muted,#64748b)!important}
.ch-suggestion-login-required p{margin:0!important}
html[data-ch-theme-mode="dark"] .ch-suggestion-embed--compact,body.ch-theme-mode-dark .ch-suggestion-embed--compact{box-shadow:0 12px 30px rgba(0,0,0,.22)!important}
@media(max-width:782px){.ch-suggestion-embed--full{margin:8px!important}.ch-suggestion-compact-body{padding:12px!important}.ch-suggestion-embed--compact>summary{padding:12px!important}}

/* v0.3.85 — CommunityHub Games: Prize Drop presentation */
.ch-game{--ch-game-surface:var(--ch-theme-surface,#fff);--ch-game-text:var(--ch-theme-text,#0f172a);--ch-game-muted:var(--ch-theme-muted,#64748b);--ch-game-border:var(--ch-theme-border,#dbe3ec);--ch-game-primary:var(--ch-theme-primary,#2563eb);position:relative;box-sizing:border-box;color:var(--ch-game-text)!important;background:linear-gradient(180deg,color-mix(in srgb,var(--ch-game-surface) 96%,var(--ch-game-primary) 4%),var(--ch-game-surface))!important;border:1px solid var(--ch-game-border)!important;border-radius:22px!important;box-shadow:0 18px 46px rgba(15,23,42,.09)!important;overflow:hidden!important}
.ch-game *{box-sizing:border-box}.ch-game-header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important;padding:22px 22px 12px!important}.ch-game-header h2{margin:2px 0 7px!important;color:var(--ch-game-text)!important;font-size:clamp(24px,4vw,34px)!important;line-height:1.05!important;letter-spacing:-.035em!important}.ch-game-header p{max-width:640px!important;margin:0!important;color:var(--ch-game-muted)!important;font-size:13px!important;line-height:1.55!important}.ch-game-kicker{display:block!important;color:var(--ch-game-primary)!important;font-size:10px!important;font-weight:950!important;letter-spacing:.13em!important;text-transform:uppercase!important}.ch-game-balance{flex:0 0 auto!important;min-width:130px!important;padding:10px 12px!important;border:1px solid color-mix(in srgb,var(--ch-game-border) 85%,transparent)!important;border-radius:14px!important;background:color-mix(in srgb,var(--ch-game-surface) 92%,var(--ch-game-primary) 8%)!important;text-align:right!important}.ch-game-balance span{display:block!important;color:var(--ch-game-muted)!important;font-size:9px!important;font-weight:850!important;text-transform:uppercase!important;letter-spacing:.09em!important}.ch-game-balance strong{display:block!important;margin-top:2px!important;color:var(--ch-game-text)!important;font-size:14px!important;line-height:1.2!important}
.ch-prize-drop-board{position:relative!important;height:430px!important;margin:8px 22px 0!important;border:1px solid color-mix(in srgb,var(--ch-game-border) 85%,transparent)!important;border-radius:20px 20px 13px 13px!important;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--ch-game-primary) 13%,transparent),transparent 34%),linear-gradient(180deg,color-mix(in srgb,var(--ch-game-surface) 90%,#000 10%),color-mix(in srgb,var(--ch-game-surface) 97%,#000 3%))!important;overflow:hidden!important}.ch-prize-drop-pegs{position:absolute!important;inset:44px 8% 82px!important;display:flex!important;flex-direction:column!important;justify-content:space-around!important}.ch-prize-drop-peg-row{display:flex!important;align-items:center!important;justify-content:space-evenly!important;padding-inline:calc((6 - attr(data-row number)) * 2%)!important}.ch-prize-drop-peg-row span{display:block!important;width:10px!important;height:10px!important;border-radius:50%!important;background:color-mix(in srgb,var(--ch-game-text) 72%,var(--ch-game-surface) 28%)!important;box-shadow:0 2px 7px rgba(0,0,0,.18)!important}.ch-prize-drop-ball{position:absolute!important;z-index:4!important;left:50%;top:5%;width:24px!important;height:24px!important;border-radius:50%!important;transform:translate(-50%,-50%)!important;background:radial-gradient(circle at 32% 28%,#fff9d8 0 12%,#e9c85e 30%,#9f7718 100%)!important;border:2px solid rgba(255,255,255,.72)!important;box-shadow:0 5px 18px rgba(0,0,0,.3),0 0 0 4px rgba(233,200,94,.12)!important;transition:left .18s cubic-bezier(.2,.8,.2,1),top .18s cubic-bezier(.2,.8,.2,1)!important}.ch-prize-drop-ball.is-resetting{transition:none!important}.ch-prize-drop-slots{position:absolute!important;z-index:3!important;left:0!important;right:0!important;bottom:0!important;height:76px!important;display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:3px!important;padding:0 5px 5px!important}.ch-prize-drop-slot{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-width:0!important;border:1px solid color-mix(in srgb,var(--ch-game-border) 80%,transparent)!important;border-radius:9px!important;background:color-mix(in srgb,var(--ch-game-surface) 92%,var(--ch-game-primary) 8%)!important;color:var(--ch-game-text)!important;transition:transform .18s ease,box-shadow .18s ease,background .18s ease!important}.ch-prize-drop-slot span{font-size:15px!important;font-weight:950!important;line-height:1!important}.ch-prize-drop-slot small{margin-top:4px!important;color:var(--ch-game-muted)!important;font-size:8px!important;font-weight:750!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important}.ch-prize-drop-slot.is-hit{transform:translateY(-5px)!important;background:color-mix(in srgb,#e9c85e 25%,var(--ch-game-surface) 75%)!important;box-shadow:0 0 0 2px #e9c85e inset,0 10px 24px rgba(233,200,94,.28)!important}.ch-game-controls{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;padding:16px 22px 10px!important}.ch-game-play-meta{display:flex!important;flex-wrap:wrap!important;gap:6px 14px!important;color:var(--ch-game-muted)!important;font-size:11px!important;font-weight:700!important}.ch-game-play-meta strong{color:var(--ch-game-text)!important}.ch-game-play-button{flex:0 0 auto!important;min-width:132px!important;min-height:46px!important;padding:10px 18px!important;border:0!important;border-radius:14px!important;background:linear-gradient(180deg,color-mix(in srgb,var(--ch-game-primary) 84%,#fff 16%),var(--ch-game-primary))!important;color:#fff!important;font:inherit!important;font-weight:950!important;letter-spacing:.01em!important;box-shadow:0 10px 24px color-mix(in srgb,var(--ch-game-primary) 30%,transparent)!important;cursor:pointer!important;transition:transform .15s ease,opacity .15s ease!important}.ch-game-play-button:hover{transform:translateY(-1px)!important}.ch-game-play-button:active{transform:translateY(1px) scale(.99)!important}.ch-game-play-button:disabled{cursor:not-allowed!important;opacity:.48!important;transform:none!important}.ch-game-result{min-height:42px!important;margin:0 22px 20px!important;padding:10px 12px!important;border-radius:12px!important;background:color-mix(in srgb,var(--ch-game-surface) 92%,var(--ch-game-border) 8%)!important;color:var(--ch-game-muted)!important;font-size:12px!important;font-weight:800!important;text-align:center!important}.ch-game-result.is-win{background:color-mix(in srgb,#16a34a 12%,var(--ch-game-surface) 88%)!important;color:color-mix(in srgb,#16a34a 82%,var(--ch-game-text) 18%)!important}.ch-game-result.is-loss{color:var(--ch-game-muted)!important}.ch-game-result.is-error{background:color-mix(in srgb,#dc2626 10%,var(--ch-game-surface) 90%)!important;color:color-mix(in srgb,#dc2626 78%,var(--ch-game-text) 22%)!important}.ch-game-notice{padding:13px 14px!important;border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:14px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-muted,#64748b)!important;font-size:12px!important;font-weight:700!important}
.ch-prize-drop--compact{border-radius:16px!important}.ch-prize-drop--compact .ch-game-header{display:grid!important;padding:14px 14px 8px!important}.ch-prize-drop--compact .ch-game-header h2{font-size:19px!important}.ch-prize-drop--compact .ch-game-header p{font-size:11px!important}.ch-prize-drop--compact .ch-game-balance{width:100%!important;min-width:0!important;text-align:left!important}.ch-prize-drop--compact .ch-prize-drop-board{height:280px!important;margin:6px 12px 0!important;border-radius:14px 14px 10px 10px!important}.ch-prize-drop--compact .ch-prize-drop-pegs{inset:34px 4% 64px!important}.ch-prize-drop--compact .ch-prize-drop-peg-row span{width:7px!important;height:7px!important}.ch-prize-drop--compact .ch-prize-drop-ball{width:18px!important;height:18px!important}.ch-prize-drop--compact .ch-prize-drop-slots{height:60px!important;gap:2px!important;padding:0 3px 3px!important}.ch-prize-drop--compact .ch-prize-drop-slot{border-radius:7px!important}.ch-prize-drop--compact .ch-prize-drop-slot span{font-size:11px!important}.ch-prize-drop--compact .ch-prize-drop-slot small{display:none!important}.ch-prize-drop--compact .ch-game-controls{display:grid!important;padding:12px!important}.ch-prize-drop--compact .ch-game-play-button{width:100%!important}.ch-prize-drop--compact .ch-game-result{margin:0 12px 12px!important}
html[data-ch-theme-mode="dark"] .ch-game,body.ch-theme-mode-dark .ch-game{box-shadow:0 20px 48px rgba(0,0,0,.28)!important}
@media(max-width:782px){.ch-game{border-radius:18px!important}.ch-game-header{display:grid!important;padding:16px 14px 8px!important}.ch-game-balance{width:100%!important;text-align:left!important}.ch-prize-drop-board{height:350px!important;margin:7px 10px 0!important;border-radius:16px 16px 10px 10px!important}.ch-prize-drop-pegs{inset:40px 4% 70px!important}.ch-prize-drop-peg-row span{width:8px!important;height:8px!important}.ch-prize-drop-ball{width:21px!important;height:21px!important}.ch-prize-drop-slots{height:68px!important;gap:2px!important;padding:0 3px 3px!important}.ch-prize-drop-slot span{font-size:12px!important}.ch-prize-drop-slot small{font-size:7px!important}.ch-game-controls{display:grid!important;padding:14px 12px 9px!important}.ch-game-play-button{width:100%!important}.ch-game-result{margin:0 12px 14px!important}}
@media(prefers-reduced-motion:reduce){.ch-prize-drop-ball,.ch-prize-drop-slot,.ch-game-play-button{transition:none!important}}


/* =========================================================
   v0.3.94 — Better Messages touch reaction compatibility

   Better Messages owns reaction state and Floating UI geometry.
   CommunityHub only supplies two narrow compatibility guards:
   1) on coarse touch input, reveal the native trigger only for the
      message the member has just touched (JS adds the temporary class);
   2) keep BM's body-portaled fixed picker above CommunityHub's own
      full-screen Messages shell without changing its coordinates/sizing.
   ========================================================= */
@media (hover: none) and (pointer: coarse) {
  body.ch-theme .bp-messages-wrap .bm-message-content.ch-bm-touch-reaction-ready
  .bm-reactions-trigger:not(.bm-hidden) {
    opacity: 1 !important;
  }
}

body.ch-theme .bm-reactions-selector.bm-reactions-expanded {
  z-index: 2147483601 !important;
}

/* =========================================================
   v0.3.87 — stable bottom Nav spacing
   JS owns equal center geometry. Keep desktop buttons compact and ensure
   mobile icon-only buttons cannot regain flex-grow from older rules.
   ========================================================= */
@media (min-width:783px) {
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav > .ch-theme-nav-pill {
    flex-grow:0 !important;
  }
}
@media (max-width:782px) {
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action .ch-theme-community-nav > .ch-theme-nav-pill {
    flex-grow:0 !important;
  }
}


/* =========================================================
   v0.3.88 — desktop Nav text breathing room + mobile POST anchor
   Desktop buttons receive a little more internal horizontal room without
   returning to the stretched layout. Mobile icon-only POST position is
   anchored by JS to the real center spacer after every layout pass.
   ========================================================= */
@media (min-width:783px) {
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-menu-list--community > li > a,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-nav > .ch-theme-nav-pill {
    padding-left:12px !important;
    padding-right:12px !important;
  }
}


/* =========================================================
   v0.3.89 — deterministic mobile icon-only POST geometry
   Mobile icon-only no longer uses post-load JS width/margin measurements.
   Seven stable equal columns keep POST in the true center and reserve any
   missing logged-out item at the OUTER edge, never beside POST.
   ========================================================= */
@media (max-width:782px) {
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] {
    display:grid !important;
    grid-template-columns:repeat(7,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    align-items:center !important;
    justify-items:stretch !important;
    gap:0 !important;
    width:100% !important;
    padding-inline:0 !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-pill,
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-center-spacer,
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-balance-placeholder {
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    flex:none !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-pill {
    justify-self:stretch !important;
    padding-inline:0 !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-center-spacer {
    min-height:1px !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-center-action {
    left:50% !important;
  }
}
\n\n/* =========================================================
   v0.3.90 — deterministic desktop bottom Nav parity
   Desktop no longer depends on post-load JS width measurement. Equal fixed
   slots are rendered on both sides of POST; an odd/role-filtered item count
   reserves its missing slot only at the far outer edge. This preserves the
   approved compact desktop padding while eliminating between-page movement.
   ========================================================= */
@media (min-width:783px) {
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-menu-list--community {
    display:flex !important;
    align-items:stretch !important;
    justify-content:center !important;
    gap:6px !important;
    width:100% !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav > .ch-theme-nav-pill,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-menu-list--community > li:not(.ch-theme-nav-center-spacer-item):not(.ch-theme-nav-balance-placeholder) {
    flex:0 0 94px !important;
    width:94px !important;
    min-width:94px !important;
    max-width:94px !important;
    margin:0 !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-nav-center-spacer,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-nav-center-spacer-item {
    flex:0 0 82px !important;
    width:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    margin:0 !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-nav-balance-placeholder {
    display:block !important;
    visibility:hidden !important;
    pointer-events:none !important;
    flex:0 0 94px !important;
    width:94px !important;
    min-width:94px !important;
    max-width:94px !important;
    margin:0 !important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-center-action {
    left:50% !important;
  }
}


/* =========================================================
   v0.3.99 — Better Messages palette sync + social header polish
   ========================================================= */
body.ch-theme :is(.bp-messages-wrap,.bp-messages-wrap-main,.bp-better-messages-list,.bp-better-messages-mini){font-family:inherit}
html[data-ch-theme-mode="light"] body.ch-theme :is(.bp-messages-wrap,.bp-messages-wrap-main,.bp-better-messages-list,.bp-better-messages-mini){color:rgb(var(--bm-text-color))!important}
html[data-ch-theme-mode="dark"] body.ch-theme :is(.bp-messages-wrap,.bp-messages-wrap-main,.bp-better-messages-list,.bp-better-messages-mini){color:rgb(var(--bm-text-color-dark))!important}
body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header.ch-page-hero){width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;align-self:stretch!important;margin-left:0!important;margin-right:0!important;padding:16px 18px!important;border-radius:18px!important;border:1px solid var(--ch-theme-border)!important;background:linear-gradient(135deg,color-mix(in srgb,var(--ch-theme-surface) 96%,var(--ch-theme-blue)),var(--ch-theme-surface))!important;color:var(--ch-theme-text)!important;box-shadow:var(--ch-theme-soft-shadow)!important;overflow:hidden!important}
html[data-ch-theme-mode="dark"] body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header.ch-page-hero){background:linear-gradient(135deg,color-mix(in srgb,var(--ch-theme-surface) 94%,var(--ch-theme-blue)),var(--ch-theme-surface))!important;border-color:var(--ch-theme-border)!important;color:var(--ch-theme-text)!important}
body.ch-theme .ch-member-directory{width:100%!important;max-width:none!important;min-width:0!important;margin-inline:0!important}
body.ch-theme .ch-member-directory-hero h1,body.ch-theme .ch-member-directory-hero p,body.ch-theme .ch-member-directory-kicker,body.ch-theme .ch-member-directory-count strong,body.ch-theme .ch-member-directory-count span{color:var(--ch-theme-text)!important}
body.ch-theme .ch-member-directory-kicker{background:color-mix(in srgb,var(--ch-theme-blue) 12%,transparent)!important}
body.ch-theme .ch-member-directory-count{background:var(--ch-theme-surface-soft)!important;border:1px solid var(--ch-theme-border)!important;color:var(--ch-theme-text)!important;box-shadow:none!important}
body.ch-theme :is(.ch-community-feed-header .ch-hub-page-nav,.ch-member-directory-hero .ch-hub-page-nav,.ch-notifications-header .ch-page-actions,.ch-bookmarks-header .ch-bookmarks-nav-in-header){background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important;margin:0!important}
body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header) :is(.ch-hub-nav-button,.ch-hub-nav-link,.ch-button,button){min-height:36px!important;padding:8px 12px!important;border-radius:11px!important;border:1px solid var(--ch-theme-border)!important;background:var(--ch-theme-surface-soft)!important;color:var(--ch-theme-text)!important;box-shadow:none!important;font-weight:800!important}
body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header) :is(.ch-hub-nav-button,.ch-hub-nav-link,.ch-button,button):hover,body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header) :is(.ch-hub-nav-button,.ch-hub-nav-link,.ch-button,button):focus{border-color:color-mix(in srgb,var(--ch-theme-blue) 55%,var(--ch-theme-border))!important;background:color-mix(in srgb,var(--ch-theme-blue) 9%,var(--ch-theme-surface-soft))!important;color:var(--ch-theme-text)!important;transform:none!important;box-shadow:none!important;outline:2px solid color-mix(in srgb,var(--ch-theme-blue) 24%,transparent)!important;outline-offset:1px!important}
body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header) :is(.ch-hub-nav-button,.ch-hub-nav-link).is-active{background:var(--ch-theme-blue)!important;border-color:var(--ch-theme-blue)!important;color:#fff!important}
body.ch-hide-timeline-header-community .ch-community-feed-header{display:none!important}
body.ch-hide-timeline-header-members .ch-member-directory-hero{display:none!important}
body.ch-hide-timeline-header-notifications .ch-notifications-header{display:none!important}
body.ch-hide-timeline-header-saved .ch-bookmarks-header.ch-page-hero{display:none!important}
@media(max-width:781px){body.ch-theme :is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header.ch-page-hero){padding:13px 14px!important;border-radius:16px!important}body.ch-theme .ch-member-directory-hero{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}body.ch-theme .ch-member-directory-side{width:100%!important;min-width:0!important}body.ch-theme .ch-member-directory-count{min-width:0!important;width:100%!important;box-sizing:border-box!important;padding:10px 12px!important}}


/* v0.4.00 — Optional social-page nav buttons. Header visibility remains independent. */
body.ch-hide-social-timeline-nav .ch-community-feed-header .ch-community-feed-nav,
body.ch-hide-social-timeline-nav .ch-member-directory-hero .ch-member-directory-nav,
body.ch-hide-social-timeline-nav .ch-notifications-header .ch-notifications-nav,
body.ch-hide-social-timeline-nav .ch-bookmarks-header .ch-bookmarks-nav-in-header {
  display: none !important;
}

/* CommunityHub v0.4.02 — PMPro login widget readability in both theme modes. */
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(label,p,span,strong,small,legend,.pmpro_form_label),
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]){
  color:var(--ch-theme-text)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],select,textarea){
  background:var(--ch-theme-surface)!important;
  color:var(--ch-theme-text)!important;
  border-color:var(--ch-theme-border)!important;
  caret-color:var(--ch-theme-text)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input,textarea)::placeholder{
  color:var(--ch-theme-muted)!important;
  opacity:1!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) a{
  color:var(--ch-theme-blue)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="submit"],button,.pmpro_btn){
  background:var(--ch-theme-blue)!important;
  color:#fff!important;
  border-color:var(--ch-theme-blue)!important;
}

/* CommunityHub-owned Better Messages profile route. */
body.ch-theme .ch-profile-messages-route,
body.ch-theme .ch-profile-messages-shell{width:100%;max-width:none;box-sizing:border-box}
body.ch-theme .ch-profile-messages-shell>.bp-messages-wrap,
body.ch-theme .ch-profile-messages-shell>.bp-messages-wrap-main{width:100%;max-width:none}

/* =========================================================
   v0.4.03 — no-rail centering + virtual-route metadata guard
   ========================================================= */
/* Any CommunityHub surface with rails disabled owns a centered content lane. */
body.ch-theme .ch-theme-community-shell.ch-theme-layout--no-sidebar{
  display:block!important;
  width:100%!important;
}
body.ch-theme .ch-theme-community-shell.ch-theme-layout--no-sidebar > .ch-theme-community-content-wrap{
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.ch-theme .ch-theme-community-shell--profile.ch-theme-layout--no-sidebar > .ch-theme-community-content-wrap,
body.ch-theme .ch-theme-community-shell--messages.ch-theme-layout--no-sidebar > .ch-theme-community-content-wrap{
  max-width:1180px!important;
}
body.ch-theme .ch-profile-messages-route,
body.ch-theme .ch-profile-messages-shell{
  width:100%!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
body.ch-theme-better-messages-page .ch-theme-community-shell--profile.ch-theme-layout--no-sidebar,
body.ch-theme-better-messages-page .ch-theme-community-shell--profile.ch-theme-layout--no-sidebar > .ch-theme-community-content-wrap{
  width:100%!important;
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Generic WordPress pages also remain centered when their rails are disabled. */
body.ch-theme .ch-theme-container.ch-theme-layout--no-sidebar > .ch-theme-content-wrap{
  width:100%!important;
  max-width:1180px;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Virtual CommunityHub routes must never display WordPress blog-post chrome.
   Core supplies the body marker; this is the presentation-side safety net for
   theme/Elementor dynamic post widgets that try to render stale post context. */
body.ch-communityhub-virtual-route .ch-theme-post-meta,
body.ch-communityhub-virtual-route .ch-theme-post-tags,
body.ch-communityhub-virtual-route .entry-meta,
body.ch-communityhub-virtual-route .post-meta,
body.ch-communityhub-virtual-route .tags-links,
body.ch-communityhub-virtual-route .cat-links,
body.ch-communityhub-virtual-route .posted-on,
body.ch-communityhub-virtual-route .byline,
body.ch-communityhub-virtual-route .elementor-widget-post-info,
body.ch-communityhub-virtual-route .elementor-widget-theme-post-title,
body.ch-communityhub-virtual-route .elementor-widget-theme-post-excerpt,
body.ch-communityhub-virtual-route .elementor-widget-theme-post-featured-image{
  display:none!important;
}


/* v0.4.05 — logged-out Community membership wall polish. */
.ch-theme-community-shell--community-access {
  display: block !important;
  width: 100%;
  max-width: 1180px;
  margin-inline: auto;
}
.ch-theme-community-shell--community-access .ch-theme-community-content-wrap {
  width: 100%;
  max-width: 920px;
  margin-inline: auto;
}
.ch-theme-community-main.ch-community-access-route-main {
  min-height: clamp(520px, 68vh, 820px);
  display: flex;
  align-items: center;
}
.ch-theme-community-main.ch-community-access-route-main > .ch-theme-container {
  width: 100%;
}
.ch-community-access-wall {
  width: 100%;
  max-width: 860px;
  margin: clamp(28px, 6vh, 72px) auto;
  padding: 0 20px;
  box-sizing: border-box;
}
.ch-community-access-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
  padding: clamp(34px, 5vw, 64px);
  border: 1px solid var(--ch-border, #d8dee9);
  border-radius: 28px;
  background: var(--ch-surface, #fff);
  color: var(--ch-text, #172033);
  box-shadow: 0 24px 70px rgba(15, 23, 42, .11);
}
.ch-community-access-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -35% auto auto 50%;
  width: 460px;
  height: 260px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--ch-accent, #2563eb) 18%, transparent) 0%, transparent 70%);
  pointer-events: none;
}
.ch-community-access-icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border: 1px solid color-mix(in srgb, var(--ch-accent, #2563eb) 35%, var(--ch-border, #d8dee9));
  border-radius: 22px;
  background: color-mix(in srgb, var(--ch-accent, #2563eb) 10%, var(--ch-surface, #fff));
  box-shadow: 0 12px 28px color-mix(in srgb, var(--ch-accent, #2563eb) 13%, transparent);
  font-size: 32px;
}
.ch-community-access-card h1 {
  margin: 2px 0 0;
  max-width: 680px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -.025em;
}
.ch-community-access-card p {
  max-width: 610px;
  margin: 0;
  color: var(--ch-text-muted, #5f6b7a);
  font-size: clamp(15px, 1.8vw, 18px);
  line-height: 1.65;
}
.ch-community-access-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  width: 100%;
  margin-top: 10px;
}
.ch-community-access-actions .ch-button {
  min-width: 154px;
  min-height: 48px;
  padding: 12px 22px;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background-color .16s ease;
}
.ch-community-access-actions .ch-button:hover,
.ch-community-access-actions .ch-button:focus-visible {
  transform: translateY(-1px);
}
.ch-community-access-actions .ch-button-primary {
  box-shadow: 0 10px 26px color-mix(in srgb, var(--ch-accent, #2563eb) 24%, transparent);
}
.ch-community-access-actions .ch-button-secondary:hover,
.ch-community-access-actions .ch-button-secondary:focus-visible {
  border-color: color-mix(in srgb, var(--ch-accent, #2563eb) 55%, var(--ch-border, #cbd5e1));
  background: color-mix(in srgb, var(--ch-accent, #2563eb) 7%, transparent);
}
html[data-ch-theme-mode="dark"] .ch-community-access-card,
body.ch-theme-mode-dark .ch-community-access-card {
  box-shadow: 0 26px 80px rgba(0, 0, 0, .38);
}
@media (max-width: 700px) {
  .ch-theme-community-main.ch-community-access-route-main { min-height: 0; align-items: flex-start; }
  .ch-community-access-wall { margin: 26px auto 40px; padding: 0 14px; }
  .ch-community-access-card { padding: 32px 20px; border-radius: 22px; }
  .ch-community-access-actions { flex-direction: column; }
  .ch-community-access-actions .ch-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ch-community-access-actions .ch-button { transition: none; }
}

/* =========================================================
   v0.4.07 — Community intermediate-width column ownership
   =========================================================
   At tablet-landscape / compact-desktop widths the historical rail rules can
   leave a three-column Community shell active without deterministic placement.
   Pin each direct child to its semantic lane so the feed can never trade places
   with a widget rail. Desktop >=1540px and mobile <=782px remain owned by their
   existing approved rules. */
@media (min-width:1180px) and (max-width:1539px) {
  body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both {
    display:grid!important;
    grid-template-columns:minmax(180px,235px) minmax(0,720px) minmax(180px,235px)!important;
    justify-content:center!important;
    column-gap:8px!important;
    width:min(calc(100vw - 24px),1206px)!important;
    max-width:1206px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-sidebar--left {
    grid-column:1!important;
    grid-row:1!important;
    order:1!important;
  }

  body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-community-content-wrap {
    grid-column:2!important;
    grid-row:1!important;
    order:2!important;
    width:100%!important;
    max-width:720px!important;
    min-width:0!important;
  }

  body.ch-theme [class*="ch-route-community"] .ch-theme-community-shell.ch-theme-layout--sidebar-both > .ch-theme-sidebar--right {
    grid-column:3!important;
    grid-row:1!important;
    order:3!important;
  }
}


/* =========================================================
   v0.4.10 — locked deterministic Nav slots
   POST is always the true center. Configured buttons own stable positions;
   runtime-hidden buttons leave their own slot empty instead of reflowing.
   ========================================================= */
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
  display:grid!important;
  grid-auto-flow:row!important;
  grid-template-columns:
    repeat(var(--ch-nav-side-slots),clamp(78px,6vw,96px))
    clamp(64px,5vw,74px)
    repeat(var(--ch-nav-side-slots),clamp(78px,6vw,96px))!important;
  grid-auto-flow:row!important;
  align-items:stretch!important;
  justify-content:center!important;
  column-gap:clamp(4px,.45vw,7px)!important;
  width:max-content!important;
  max-width:calc(100vw - 20px)!important;
  margin-inline:auto!important;
  overflow:visible!important;
}
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  flex:none!important;
}
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder{
  display:block!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
@media (min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
    min-height:46px!important;
    padding:7px clamp(5px,.5vw,9px)!important;
  }
}
@media (max-width:782px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
    grid-template-columns:
      repeat(var(--ch-nav-side-slots),minmax(0,1fr))
      clamp(56px,16vw,70px)
      repeat(var(--ch-nav-side-slots),minmax(0,1fr))!important;
    column-gap:clamp(1px,.7vw,4px)!important;
    width:100%!important;
    max-width:100%!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
    min-height:44px!important;
    padding:5px 2px!important;
    gap:2px!important;
  }
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{
    font-size:clamp(8px,2.35vw,10px)!important;
  }
  .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
    padding-inline:2px!important;
  }
}


/* =========================================================
   v0.4.13 — Nav route truth + logged-out compact containment
   Keeps v0.4.12 exact slot ownership. Logged-out state uses the same slot
   coordinates but a tighter track width so outer items remain inside the
   viewport and adjacent visible buttons keep equal center-to-center spacing.
   ========================================================= */
@media (min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"][data-ch-nav-auth="out"]{
    grid-template-columns:
      repeat(var(--ch-nav-side-slots),clamp(68px,5.2vw,86px))
      clamp(62px,4.6vw,70px)
      repeat(var(--ch-nav-side-slots),clamp(68px,5.2vw,86px))!important;
    column-gap:clamp(3px,.35vw,6px)!important;
    width:max-content!important;
    max-width:calc(100vw - 32px)!important;
    margin-inline:auto!important;
    justify-content:center!important;
  }

  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"][data-ch-nav-auth="out"]>.ch-theme-nav-pill{
    padding-inline:clamp(4px,.4vw,7px)!important;
  }
}

/* Never allow the first/last deterministic Nav item to paint outside its track. */
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
  box-sizing:border-box!important;
  padding-inline:0!important;
}
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
}


/* =========================================================
   v0.4.14 — authoritative equal-width deterministic Nav slots
   Every regular Nav slot has the same physical width. Hidden runtime items keep
   their slot. POST owns the center track. The complete grid is max-content and
   centered, so auth-state changes cannot stretch buttons to the viewport edges.
   ========================================================= */
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
  --ch-nav-regular-slot: clamp(96px, 6.4vw, 112px);
  --ch-nav-center-slot: clamp(64px, 4.8vw, 72px);
  --ch-nav-slot-gap: clamp(4px, .42vw, 7px);

  display:grid!important;
  grid-auto-flow:row!important;
  grid-template-columns:
    repeat(var(--ch-nav-side-slots), var(--ch-nav-regular-slot))
    var(--ch-nav-center-slot)
    repeat(var(--ch-nav-side-slots), var(--ch-nav-regular-slot))!important;
  column-gap:var(--ch-nav-slot-gap)!important;
  row-gap:0!important;
  align-items:stretch!important;
  justify-content:center!important;
  width:max-content!important;
  max-width:calc(100vw - 24px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder{
  width:var(--ch-nav-regular-slot)!important;
  min-width:var(--ch-nav-regular-slot)!important;
  max-width:var(--ch-nav-regular-slot)!important;
  box-sizing:border-box!important;
  margin:0!important;
  flex:none!important;
}

.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer{
  width:var(--ch-nav-center-slot)!important;
  min-width:var(--ch-nav-center-slot)!important;
  max-width:var(--ch-nav-center-slot)!important;
  box-sizing:border-box!important;
  margin:0!important;
  flex:none!important;
}

.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px 6px!important;
  overflow:visible!important;
}

.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{
  min-width:0!important;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}

.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer{
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Auth state must never alter track widths or spacing. */
@media (min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"][data-ch-nav-auth="in"],
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"][data-ch-nav-auth="out"]{
    --ch-nav-regular-slot: clamp(96px, 6.4vw, 112px);
    --ch-nav-center-slot: clamp(64px, 4.8vw, 72px);
    --ch-nav-slot-gap: clamp(4px, .42vw, 7px);
    width:max-content!important;
    max-width:calc(100vw - 24px)!important;
    justify-content:center!important;
  }
}

/* Mobile keeps the same slot centers but scales the tracks down to fit. */
@media (max-width:782px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
    --ch-nav-regular-slot: minmax(0,1fr);
    --ch-nav-center-slot: clamp(56px,16vw,70px);
    --ch-nav-slot-gap: clamp(1px,.7vw,4px);

    grid-template-columns:
      repeat(var(--ch-nav-side-slots), minmax(0,1fr))
      var(--ch-nav-center-slot)
      repeat(var(--ch-nav-side-slots), minmax(0,1fr))!important;
    width:100%!important;
    max-width:100%!important;
    padding-inline:4px!important;
  }

  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }

  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }

  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}


/* =========================================================
   v0.4.15 — equal center-to-center Nav rhythm
   The center POST reservation has the same track width as every regular slot.
   This makes every slot center equidistant while preserving exact slot ownership
   when a runtime item (for example Profile while logged out) becomes hidden.
   ========================================================= */
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
  --ch-nav-slot-width: clamp(96px, 6.4vw, 112px);
  --ch-nav-slot-gap: clamp(4px, .42vw, 7px);

  grid-template-columns:
    repeat(var(--ch-nav-side-slots), var(--ch-nav-slot-width))
    var(--ch-nav-slot-width)
    repeat(var(--ch-nav-side-slots), var(--ch-nav-slot-width))!important;
  column-gap:var(--ch-nav-slot-gap)!important;
  width:max-content!important;
  max-width:calc(100vw - 24px)!important;
  justify-content:center!important;
  margin-inline:auto!important;
}

.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder,
.ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer{
  width:var(--ch-nav-slot-width)!important;
  min-width:var(--ch-nav-slot-width)!important;
  max-width:var(--ch-nav-slot-width)!important;
  box-sizing:border-box!important;
}

/* Authentication state never changes the slot rhythm. */
@media (min-width:783px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"][data-ch-nav-auth="in"],
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"][data-ch-nav-auth="out"]{
    --ch-nav-slot-width: clamp(96px, 6.4vw, 112px);
    --ch-nav-slot-gap: clamp(4px, .42vw, 7px);
    grid-template-columns:
      repeat(var(--ch-nav-side-slots), var(--ch-nav-slot-width))
      var(--ch-nav-slot-width)
      repeat(var(--ch-nav-side-slots), var(--ch-nav-slot-width))!important;
  }
}

/* Mobile uses equal fractional tracks for regular slots and the POST reservation,
   so icon-only and label modes share the exact same centers. */
@media (max-width:782px){
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]{
    --ch-nav-slot-gap: clamp(1px,.7vw,4px);
    grid-template-columns:
      repeat(var(--ch-nav-side-slots), minmax(0,1fr))
      minmax(0,1fr)
      repeat(var(--ch-nav-side-slots), minmax(0,1fr))!important;
    column-gap:var(--ch-nav-slot-gap)!important;
    width:100%!important;
    max-width:100%!important;
    padding-inline:4px!important;
  }

  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-pill,
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-balance-placeholder,
  .ch-theme-community-bar--bottom .ch-theme-community-nav[data-ch-balanced-nav="1"]>.ch-theme-nav-center-spacer{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* =========================================================
   v0.4.16 — POST center locked to deterministic Nav grid
   The slot grid is already symmetric. The visible raised POST control uses the
   same horizontal center while preserving its approved raised Y position.
   ========================================================= */
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-center-action{
  left:50%!important;
  right:auto!important;
  margin-left:0!important;
  margin-right:0!important;
  transform:translate(-50%,-22%)!important;
}

.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-center-action:hover,
.ch-theme-community-bar--bottom.has-center-action .ch-theme-community-center-action:focus-visible{
  transform:translate(-50%,-25%)!important;
}

@media (max-width:782px){
  .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-center-action{
    left:50%!important;
    right:auto!important;
    transform:translate(-50%,-22%)!important;
  }
  .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-center-action:hover,
  .ch-theme-community-bar--bottom.has-center-action .ch-theme-community-center-action:focus-visible{
    transform:translate(-50%,-25%)!important;
  }
}


/* =========================================================
   v0.4.17 — FINAL AUTHORITATIVE DETERMINISTIC NAV CONTRACT
   This selector intentionally matches/exceeds the specificity of historical
   body.ch-theme / has-center-action rules so older flex geometry cannot win.
   ========================================================= */

/* Desktop/tablet: exact equal-width slots, compact centered block. */
@media (min-width:783px){
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"]{
    --ch-nav-slot-width:clamp(96px,6.4vw,112px)!important;
    --ch-nav-slot-gap:clamp(4px,.42vw,7px)!important;

    display:grid!important;
    grid-auto-flow:row!important;
    grid-template-columns:
      repeat(var(--ch-nav-side-slots),var(--ch-nav-slot-width))
      var(--ch-nav-slot-width)
      repeat(var(--ch-nav-side-slots),var(--ch-nav-slot-width))!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    justify-content:center!important;
    column-gap:var(--ch-nav-slot-gap)!important;
    row-gap:0!important;

    width:max-content!important;
    min-width:0!important;
    max-width:calc(100vw - 24px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding:0!important;
    overflow:visible!important;
    flex:none!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-pill,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-balance-placeholder,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-center-spacer{
    display:flex!important;
    box-sizing:border-box!important;
    width:var(--ch-nav-slot-width)!important;
    min-width:var(--ch-nav-slot-width)!important;
    max-width:var(--ch-nav-slot-width)!important;
    margin:0!important;
    flex:none!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-pill{
    align-items:center!important;
    justify-content:center!important;
    min-height:46px!important;
    padding:7px 6px!important;
    overflow:visible!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] .ch-theme-nav-label{
    display:block!important;
    min-width:0!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-balance-placeholder,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-center-spacer{
    visibility:hidden!important;
    pointer-events:none!important;
  }

  /* POST shares the exact horizontal center of the deterministic grid. */
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  > .ch-theme-community-center-action{
    left:50%!important;
    right:auto!important;
    margin-left:0!important;
    margin-right:0!important;
    transform:translate(-50%,-22%)!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  > .ch-theme-community-center-action:hover,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  > .ch-theme-community-center-action:focus-visible{
    transform:translate(-50%,-25%)!important;
  }
}

/* Mobile: same permanent slot ownership and equal centers, scaled to viewport.
   This also outranks the historical icon-only 7-column/flex rules. */
@media (max-width:782px){
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"],
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"]{
    display:grid!important;
    grid-auto-flow:row!important;
    grid-template-columns:
      repeat(var(--ch-nav-side-slots),minmax(0,1fr))
      minmax(0,1fr)
      repeat(var(--ch-nav-side-slots),minmax(0,1fr))!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    justify-content:center!important;
    column-gap:clamp(1px,.7vw,4px)!important;
    row-gap:0!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0 auto!important;
    padding-inline:4px!important;
    overflow:visible!important;
    flex:none!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-pill,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-balance-placeholder,
  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-center-spacer,
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-pill,
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-balance-placeholder,
  body.ch-theme .ch-theme-community-bar--bottom.ch-theme-community-bar--mobile-icon-only.has-center-action
  .ch-theme-community-nav[data-ch-balanced-nav="1"] > .ch-theme-nav-center-spacer{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    flex:none!important;
  }

  body.ch-theme .ch-theme-community-bar--bottom.has-center-action
  > .ch-theme-community-center-action{
    left:50%!important;
    right:auto!important;
    transform:translate(-50%,-22%)!important;
  }
}


/* =========================================================
   v0.4.18 — iPad landscape / compact-desktop Community lane ownership
   The previous recovery began at 1180px, missing common iPad landscape CSS
   viewports such as 1024px and 1112px. Whenever the Theme is still rendering
   the three-column Community shell in this range, semantic children are pinned
   to their correct lanes and cannot trade places.
   CH-NAV-001 is intentionally untouched.
   ========================================================= */
@media (min-width:900px) and (max-width:1539px){
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-both{
    display:grid!important;
    grid-template-columns:
      minmax(170px,22vw)
      minmax(0,1fr)
      minmax(170px,22vw)!important;
    grid-template-areas:"ch-left ch-feed ch-right"!important;
    align-items:start!important;
    justify-content:center!important;
    column-gap:8px!important;
    row-gap:0!important;
    width:min(calc(100vw - 16px),1206px)!important;
    max-width:1206px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-both
  > .ch-theme-sidebar--left{
    grid-area:ch-left!important;
    grid-column:1!important;
    grid-row:1!important;
    order:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-both
  > .ch-theme-community-content-wrap{
    grid-area:ch-feed!important;
    grid-column:2!important;
    grid-row:1!important;
    order:2!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-both
  > .ch-theme-sidebar--right{
    grid-area:ch-right!important;
    grid-column:3!important;
    grid-row:1!important;
    order:3!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* v0.4.20 — CommunityHub avatar cosmetic bridge
   Header/account-menu geometry remains Theme-owned; only the Core-provided
   equipped avatar effect is wrapped around the existing account avatar. */
.ch-theme-account-avatar-cosmetic{
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  overflow:visible;
  border-radius:999px;
}
.ch-theme-account-avatar-cosmetic .ch-theme-account-avatar{
  position:relative;
  z-index:2;
  display:block;
  margin:0!important;
}
.ch-theme-account-toggle .ch-theme-account-avatar-cosmetic{
  overflow:visible;
}
.ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic{
  flex:0 0 38px;
}
@media(max-width:960px){
  .ch-theme-account-toggle .ch-theme-account-avatar-cosmetic{
    width:34px;
    height:34px;
    flex-basis:34px;
  }
}
@media(max-width:520px){
  .ch-theme-account-toggle .ch-theme-account-avatar-cosmetic{
    width:31px;
    height:31px;
    flex-basis:31px;
  }
}

/* =========================================================
   v0.4.22 — Profile Cosmetics → Theme Widget Bridge
   Core owns which Profile cosmetic is equipped. Theme reads the sanitized
   effect token already rendered by Core and carries a restrained version of
   that visual language into Theme-owned widget cards on Profile routes only.
   ========================================================= */
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

/* Midnight Gold */
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic-effect-midnight-gold .ch-theme-community-sidebar .ch-theme-widget{
  border-color:rgba(200,168,75,.44)!important;
  background:
    linear-gradient(145deg,rgba(200,168,75,.045),transparent 42%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(200,168,75,.56),0 8px 22px rgba(91,68,8,.08)!important;
}

/* Cosmic */
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic-effect-cosmic .ch-theme-community-sidebar .ch-theme-widget{
  border-color:rgba(139,92,246,.44)!important;
  background:
    radial-gradient(circle at 14% 14%,rgba(56,189,248,.055),transparent 28%),
    radial-gradient(circle at 88% 4%,rgba(168,85,247,.065),transparent 30%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(139,92,246,.42),0 0 18px rgba(99,102,241,.08)!important;
}
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic-effect-cosmic .ch-theme-community-sidebar .ch-theme-widget::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 18% 22%,rgba(125,211,252,.48) 0 1px,transparent 1.7px),
    radial-gradient(circle at 72% 34%,rgba(196,181,253,.42) 0 1px,transparent 1.7px),
    radial-gradient(circle at 44% 78%,rgba(255,255,255,.36) 0 1px,transparent 1.7px);
  background-size:96px 96px,132px 132px,164px 164px;
  opacity:.48;
}

/* Aurora Veil */
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic-effect-aurora-veil .ch-theme-community-sidebar .ch-theme-widget{
  border-color:rgba(45,212,191,.40)!important;
  background:
    linear-gradient(125deg,rgba(16,185,129,.045),rgba(56,189,248,.055),rgba(139,92,246,.045)),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(56,189,248,.42),0 0 18px rgba(45,212,191,.07)!important;
}

/* Obsidian Crown */
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic-effect-obsidian-crown .ch-theme-community-sidebar .ch-theme-widget{
  border-color:rgba(113,128,150,.58)!important;
  background:
    linear-gradient(145deg,rgba(15,23,42,.08),rgba(71,85,105,.055)),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(137,149,164,.64),0 8px 22px rgba(15,23,42,.10)!important;
}

/* Solar Horizon */
.ch-theme-community-shell--profile.ch-theme-profile-cosmetic-effect-solar-horizon .ch-theme-community-sidebar .ch-theme-widget{
  border-color:rgba(251,146,60,.42)!important;
  background:
    radial-gradient(circle at 50% 115%,rgba(253,224,71,.075),rgba(249,115,22,.035) 34%,transparent 66%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(249,115,22,.46),0 0 18px rgba(249,115,22,.07)!important;
}

/* Profile-cosmetic widget readability contract — dark mode. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget,
body.ch-theme-mode-dark .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget,
body.ch-theme-dark .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget{
  color:#f4f7fb!important;
  background-color:#121c2b!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget-title,
body.ch-theme-mode-dark .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget-title,
body.ch-theme-dark .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget-title{
  color:#f4f7fb!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget :is(p,li,label,small),
body.ch-theme-mode-dark .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget :is(p,li,label,small),
body.ch-theme-dark .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget :is(p,li,label,small){
  color:inherit;
}

@media(prefers-reduced-motion:reduce){
  .ch-theme-community-shell--profile.ch-theme-profile-cosmetic .ch-theme-community-sidebar .ch-theme-widget{
    transition:none!important;
  }
}


/* =========================================================
   v0.4.26 — persistent Nav cosmetics via BODY state only.
   CH-NAV-001 geometry/position/display/overflow are intentionally untouched.
   These rules are presentation-only: background, border, text and shadow.
   ========================================================= */

body.ch-theme.ch-theme-nav-cosmetic-midnight-gold-nav .ch-theme-community-bar{
  background:linear-gradient(180deg,#111722,#090d13)!important;
  border-color:rgba(200,168,75,.50)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 18px rgba(200,168,75,.12)!important;
  color:#f7efd5!important;
}
body.ch-theme.ch-theme-nav-cosmetic-midnight-gold-nav .ch-theme-community-bar .ch-theme-nav-pill{
  color:#f7efd5!important;
}
body.ch-theme.ch-theme-nav-cosmetic-midnight-gold-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){
  background:rgba(200,168,75,.16)!important;color:#ffe9a8!important;border-color:rgba(227,197,106,.28)!important;
}

body.ch-theme.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-community-bar{
  background:linear-gradient(105deg,#10192b,#151337 38%,#10243c 68%,#10192b)!important;
  background-size:220% 100%!important;
  border-color:rgba(139,92,246,.50)!important;
  box-shadow:0 0 20px rgba(99,102,241,.17),inset 0 1px 0 rgba(125,211,252,.12)!important;
  color:#edf4ff!important;
  animation:chThemeSafeNavCosmic 8s linear infinite!important;
}
body.ch-theme.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-community-bar .ch-theme-nav-pill{
  color:#edf4ff!important;
}
body.ch-theme.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){
  background:linear-gradient(135deg,rgba(59,130,246,.24),rgba(139,92,246,.28))!important;color:#fff!important;
}

body.ch-theme.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-community-bar{
  background:linear-gradient(110deg,#0d2025,#10243a 35%,#182039 62%,#12262c)!important;
  background-size:220% 100%!important;
  border-color:rgba(45,212,191,.45)!important;
  box-shadow:0 0 18px rgba(45,212,191,.12),inset 0 1px 0 rgba(125,211,252,.10)!important;
  color:#ebfffb!important;
  animation:chThemeSafeNavAurora 8s ease-in-out infinite alternate!important;
}
body.ch-theme.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-community-bar .ch-theme-nav-pill{
  color:#ebfffb!important;
}
body.ch-theme.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){
  background:rgba(45,212,191,.14)!important;color:#dcfffa!important;border-color:rgba(125,211,252,.22)!important;
}

body.ch-theme.ch-theme-nav-cosmetic-obsidian-steel-nav .ch-theme-community-bar{
  background:linear-gradient(180deg,#171e27,#080b10)!important;
  border-color:#66717e!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),inset 0 -1px 0 rgba(0,0,0,.90),0 0 16px rgba(148,163,184,.10)!important;
  color:#f4f7fa!important;
}
body.ch-theme.ch-theme-nav-cosmetic-obsidian-steel-nav .ch-theme-community-bar .ch-theme-nav-pill{
  color:#f4f7fa!important;
}
body.ch-theme.ch-theme-nav-cosmetic-obsidian-steel-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){
  background:linear-gradient(145deg,#596574,#29323d)!important;color:#fff!important;border-color:#8995a4!important;
}

body.ch-theme.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-community-bar{
  background:linear-gradient(105deg,#251510,#2b1710 42%,#20120e)!important;
  border-color:rgba(249,115,22,.54)!important;
  box-shadow:0 0 18px rgba(249,115,22,.14),inset 0 1px 0 rgba(251,191,36,.10)!important;
  color:#fff3df!important;
  animation:chThemeSafeNavEmber 4.4s ease-in-out infinite!important;
}
body.ch-theme.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-community-bar .ch-theme-nav-pill{
  color:#fff3df!important;
}
body.ch-theme.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){
  background:rgba(249,115,22,.18)!important;color:#fff5df!important;border-color:rgba(251,191,36,.24)!important;
}

/* Center POST action: presentation only; no geometry changes. */
body.ch-theme.ch-theme-nav-cosmetic-midnight-gold-nav .ch-theme-community-center-action{background:linear-gradient(145deg,#d2ad46,#8b6615)!important;border-color:#f7db7c!important}
body.ch-theme.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-community-center-action{background:linear-gradient(145deg,#3b82f6,#7c3aed)!important;border-color:#a5b4fc!important}
body.ch-theme.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-community-center-action{background:linear-gradient(145deg,#14b8a6,#2563eb)!important;border-color:#99f6e4!important}
body.ch-theme.ch-theme-nav-cosmetic-obsidian-steel-nav .ch-theme-community-center-action{background:linear-gradient(145deg,#626f7e,#1f2933)!important;border-color:#cbd5e1!important}
body.ch-theme.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-community-center-action{background:linear-gradient(145deg,#f59e0b,#ea580c)!important;border-color:#fde68a!important}

@keyframes chThemeSafeNavCosmic{to{background-position:220% 0}}
@keyframes chThemeSafeNavAurora{from{background-position:0 0}to{background-position:100% 0}}
@keyframes chThemeSafeNavEmber{
  0%,100%{box-shadow:0 0 12px rgba(249,115,22,.10),inset 0 1px 0 rgba(251,191,36,.08)}
  50%{box-shadow:0 0 24px rgba(249,115,22,.23),inset 0 1px 0 rgba(251,191,36,.16)}
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-community-bar,
  body.ch-theme.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-community-bar,
  body.ch-theme.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-community-bar{animation:none!important}
}


/* v0.4.27 — Liberty Line persistent Nav cosmetic.
   Presentation only; CH-NAV-001 geometry and renderer remain untouched. */
body.ch-theme.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-community-bar{
  background:linear-gradient(180deg,#0b1f4a,#08152f)!important;
  border-color:#315ca8!important;
  box-shadow:inset 0 2px 0 #b91c1c,inset 0 -2px 0 #1d4ed8,0 0 18px rgba(37,99,235,.15)!important;
  color:#f8fafc!important;
  animation:chThemeLibertyNav 5s ease-in-out infinite!important;
}
body.ch-theme.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-community-bar .ch-theme-nav-pill{color:#f8fafc!important}
body.ch-theme.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){
  background:linear-gradient(135deg,rgba(185,28,28,.28),rgba(29,78,216,.30))!important;
  color:#fff!important;border-color:rgba(248,250,252,.28)!important;
}
body.ch-theme.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-community-center-action{
  /*
   * Presentation only. Do not set position, inset, transform, dimensions,
   * overflow, display, flex, margin or padding here: CH-NAV-001 owns geometry.
   */
  background:
    radial-gradient(circle at 28% 23%,rgba(255,255,255,.25) 0 1.5px,transparent 2px),
    radial-gradient(circle at 72% 23%,rgba(255,255,255,.18) 0 1.2px,transparent 1.8px),
    linear-gradient(180deg,transparent 0 76%,#b91c1c 76% 81%,#f8fafc 81% 86%,#2563eb 86% 91%,transparent 91%),
    linear-gradient(180deg,#173a78 0%,#0b2554 52%,#071b3f 100%)!important;
  border-color:#f8fafc!important;
  color:#fff!important;
  box-shadow:
    0 0 0 2px #b91c1c,
    0 0 0 4px #1d4ed8,
    inset 0 1px 0 rgba(255,255,255,.24),
    0 7px 18px rgba(7,27,63,.30)!important;
}
@keyframes chThemeLibertyNav{
  0%,100%{box-shadow:inset 0 2px 0 #b91c1c,inset 0 -2px 0 #1d4ed8,0 0 12px rgba(37,99,235,.10)}
  50%{box-shadow:inset 0 2px 0 #dc2626,inset 0 -2px 0 #2563eb,0 0 24px rgba(37,99,235,.22)}
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-community-bar{animation:none!important}
}


/* =========================================================
   v0.4.30 — Better Messages member-header containment.
   On the confirmed Messages route, Better Messages owns the inbox surface.
   Suppress only BuddyPress' generic member header; do not alter BM UI,
   CommunityHub Nav geometry, or unrelated member/profile routes.
   ========================================================= */
body.ch-theme-better-messages-page #buddypress #item-header,
body.ch-theme-better-messages-page #buddypress .users-header.single-headers,
body.ch-theme-better-messages-page .buddypress-wrap #item-header,
body.ch-theme-better-messages-page .buddypress-wrap .users-header.single-headers{
  display:none!important;
}


/* =========================================================
   v0.4.32 — Navigation Cosmetics extend to Back to Top.
   Presentation only: no position, inset, transform, size, display,
   margin, padding, z-index, or Nav geometry changes.
   ========================================================= */
body.ch-theme-nav-cosmetic-midnight-gold-nav .ch-theme-back-to-top{
  --ch-btt-progress-light:#f7db7c;--ch-btt-progress-dark:#f7db7c;
  background:linear-gradient(145deg,#d2ad46,#8b6615)!important;
  border-color:#f7db7c!important;color:#fff8dc!important;
  box-shadow:0 10px 28px rgba(139,102,21,.34),inset 0 1px 0 rgba(255,255,255,.25)!important;
}
body.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-back-to-top{
  --ch-btt-progress-light:#c4b5fd;--ch-btt-progress-dark:#c4b5fd;
  background:linear-gradient(145deg,#2563eb,#7c3aed 62%,#db2777)!important;
  border-color:#a5b4fc!important;color:#fff!important;
  box-shadow:0 10px 30px rgba(99,102,241,.38),0 0 18px rgba(168,85,247,.24)!important;
}
body.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-back-to-top{
  --ch-btt-progress-light:#99f6e4;--ch-btt-progress-dark:#99f6e4;
  background:linear-gradient(145deg,#0f766e,#14b8a6 42%,#2563eb)!important;
  border-color:#99f6e4!important;color:#f0fdfa!important;
  box-shadow:0 10px 28px rgba(20,184,166,.30),0 0 16px rgba(37,99,235,.20)!important;
}
body.ch-theme-nav-cosmetic-obsidian-steel-nav .ch-theme-back-to-top{
  --ch-btt-progress-light:#dbe4ee;--ch-btt-progress-dark:#dbe4ee;
  background:linear-gradient(145deg,#667382,#303b47 52%,#131a22)!important;
  border-color:#cbd5e1!important;color:#f8fafc!important;
  box-shadow:0 10px 26px rgba(15,23,42,.42),inset 0 1px 0 rgba(255,255,255,.22)!important;
}
body.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-back-to-top{
  --ch-btt-progress-light:#fde68a;--ch-btt-progress-dark:#fde68a;
  background:linear-gradient(145deg,#f59e0b,#ea580c 58%,#b91c1c)!important;
  border-color:#fde68a!important;color:#fff7ed!important;
  box-shadow:0 10px 30px rgba(234,88,12,.38),0 0 16px rgba(245,158,11,.22)!important;
}
body.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-back-to-top{
  --ch-btt-progress-light:#f8fafc;--ch-btt-progress-dark:#f8fafc;
  background:
    radial-gradient(circle at 28% 24%,rgba(255,255,255,.30) 0 1.5px,transparent 2px),
    linear-gradient(180deg,transparent 0 73%,#b91c1c 73% 79%,#f8fafc 79% 85%,#2563eb 85% 91%,transparent 91%),
    linear-gradient(180deg,#173a78 0%,#0b2554 52%,#071b3f 100%)!important;
  border-color:#f8fafc!important;color:#fff!important;
  box-shadow:0 0 0 2px #b91c1c,0 0 0 4px #1d4ed8,0 9px 26px rgba(7,27,63,.34),inset 0 1px 0 rgba(255,255,255,.24)!important;
}
body.ch-theme-nav-cosmetic .ch-theme-back-to-top:hover,
body.ch-theme-nav-cosmetic .ch-theme-back-to-top:focus-visible{filter:brightness(1.08)!important}


/* v0.4.33 — BM attachment trigger interaction recovery.
 * Interaction only: do not alter the messenger composer's geometry. */
body.ch-theme :is(.bp-messages-wrap,.better-messages,.bp-better-messages-mini) .chat-footer
:is(
  [data-action*="attach" i],
  [data-action*="upload" i],
  [class*="attach" i],
  [class*="upload" i],
  [aria-label*="attach" i],
  [aria-label*="file" i],
  [aria-label*="upload" i],
  [title*="attach" i],
  [title*="file" i],
  [title*="upload" i]
){
  pointer-events:auto!important;
}


/* =========================================================
   v0.4.38 — Laptop / compact-desktop responsive authority
   Scope: 783px–1539px only.
   - CH-NAV-001 remains untouched.
   - Approved 1540px+ desktop rail geometry remains untouched.
   - Approved <=782px mobile layout remains untouched.
   - Feed/content gets priority at constrained laptop widths.
   ========================================================= */

/* Wide laptop / compact desktop:
   keep configured rails beside the feed, but scale them instead of squeezing
   the center lane or forcing the 1540px desktop dimensions. */
@media (min-width:1180px) and (max-width:1539px){
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-both{
    --ch-laptop-rail:minmax(220px,clamp(220px,19vw,300px));
    display:grid!important;
    grid-template-columns:
      var(--ch-laptop-rail)
      minmax(620px,820px)
      var(--ch-laptop-rail)!important;
    grid-template-areas:"ch-left ch-feed ch-right"!important;
    align-items:start!important;
    justify-content:center!important;
    gap:8px!important;
    width:calc(100vw - 24px)!important;
    max-width:1516px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-left{
    display:grid!important;
    grid-template-columns:minmax(220px,clamp(220px,22vw,300px)) minmax(620px,820px)!important;
    grid-template-areas:"ch-left ch-feed"!important;
    align-items:start!important;
    justify-content:center!important;
    gap:8px!important;
    width:calc(100vw - 24px)!important;
    max-width:1128px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-right{
    display:grid!important;
    grid-template-columns:minmax(620px,820px) minmax(220px,clamp(220px,22vw,300px))!important;
    grid-template-areas:"ch-feed ch-right"!important;
    align-items:start!important;
    justify-content:center!important;
    gap:8px!important;
    width:calc(100vw - 24px)!important;
    max-width:1128px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--left{
    grid-area:ch-left!important;
  }
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-community-content-wrap{
    grid-area:ch-feed!important;
    width:100%!important;
    min-width:0!important;
    max-width:820px!important;
    margin:0!important;
  }
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--right{
    grid-area:ch-right!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > :is(.ch-theme-sidebar--left,.ch-theme-sidebar--right){
    width:100%!important;
    min-width:0!important;
    max-width:300px!important;
    margin:0!important;
  }
}

/* Standard laptop / landscape tablet:
   prioritize the Community feed. Both configured widget rails remain present,
   but move below the feed rather than compressing it into a narrow center lane. */
@media (min-width:900px) and (max-width:1179px){
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell:is(
    .ch-theme-layout--sidebar-both,
    .ch-theme-layout--sidebar-left,
    .ch-theme-layout--sidebar-right
  ){
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "ch-feed ch-feed"
      "ch-left ch-right"!important;
    align-items:start!important;
    justify-content:center!important;
    gap:12px 10px!important;
    width:min(calc(100vw - 28px),820px)!important;
    max-width:820px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-community-content-wrap{
    grid-area:ch-feed!important;
    grid-column:1 / -1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:820px!important;
    margin:0!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--left{
    grid-area:ch-left!important;
    grid-column:1!important;
    grid-row:2!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--right{
    grid-area:ch-right!important;
    grid-column:2!important;
    grid-row:2!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > :is(.ch-theme-sidebar--left,.ch-theme-sidebar--right){
    position:static!important;
    top:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  /* If only one rail is configured, let it use the full widget row rather than
     leaving an artificial empty half-column. */
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-left > .ch-theme-sidebar--left,
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-right > .ch-theme-sidebar--right{
    grid-column:1 / -1!important;
    width:min(100%,420px)!important;
    justify-self:center!important;
  }
}

/* Portrait tablet / very narrow laptop:
   one readable content lane, then any configured widget rails in document order.
   This begins above the frozen mobile breakpoint so mobile presentation is not
   changed. */
@media (min-width:783px) and (max-width:899px){
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell:is(
    .ch-theme-layout--sidebar-both,
    .ch-theme-layout--sidebar-left,
    .ch-theme-layout--sidebar-right
  ){
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:12px!important;
    width:min(calc(100vw - 28px),820px)!important;
    max-width:820px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-community-content-wrap{
    order:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:820px!important;
    margin:0!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--left{
    order:2!important;
  }
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--right{
    order:3!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > :is(.ch-theme-sidebar--left,.ch-theme-sidebar--right){
    position:static!important;
    top:auto!important;
    width:min(100%,420px)!important;
    min-width:0!important;
    max-width:420px!important;
    margin:0 auto!important;
    padding:0!important;
  }
}


/* =========================================================
   v0.4.39 — Mobile Messages / reward-header / BM Profile cosmetic bridge
   ========================================================= */

/* Reward banner follows --ch-reward-banner-top, which mobile-sticky-shell.js
   now derives from the main header's live bounding rectangle on scroll. Keep
   it below the approved header layer while still above normal page content. */
body.ch-theme .ch-reward-toast{
  z-index:2147482900!important;
}

/* Mobile Better Messages owns the entire viewport once CommunityHub opens it.
   Prevent the approved sticky site header/top nav from visually floating above
   the messenger during the active in-place session. */
@media(max-width:782px){
  body.ch-theme.ch-bm-mobile-session > .ch-theme-header,
  body.ch-theme.ch-bm-mobile-session > .elementor-location-header,
  body.ch-theme.ch-bm-mobile-session > .ch-theme-community-bar,
  body.ch-theme.ch-bm-mobile-session > .ch-theme-mobile-top-action,
  body.ch-theme.ch-bm-mobile-session > .ch-theme-back-to-top{
    visibility:hidden!important;
    pointer-events:none!important;
  }

  body.ch-theme.ch-bm-mobile-session #bp-better-messages-mobile-view-container,
  body.ch-theme.ch-bm-mobile-session #bp-better-messages-mini-mobile-container,
  body.ch-theme.ch-bm-mobile-session .bp-messages-full-screen,
  body.ch-theme.ch-bm-mobile-session .bp-messages-mobile{
    z-index:2147483500!important;
  }
}

/* Profile cosmetic → Better Messages chrome bridge.
   Scope is intentionally limited to widget outlines and BM-owned headers.
   Message bubbles, composer, calls, reactions, menus, dimensions and thread
   body backgrounds remain entirely Better Messages-owned. */
body.ch-theme-bm-profile-cosmetic{
  --ch-bm-profile-border:rgba(148,163,184,.46);
  --ch-bm-profile-header:linear-gradient(180deg,rgba(15,23,42,.96),rgba(20,30,46,.96));
  --ch-bm-profile-header-text:#f8fafc;
  --ch-bm-profile-shadow:0 18px 44px rgba(15,23,42,.20);
}
body.ch-theme-bm-profile-cosmetic-effect-midnight-gold{
  --ch-bm-profile-border:rgba(200,168,75,.64);
  --ch-bm-profile-header:linear-gradient(180deg,#171712,#0c0d0f);
  --ch-bm-profile-header-text:#fff2bf;
  --ch-bm-profile-shadow:0 18px 44px rgba(83,62,8,.24),0 0 18px rgba(200,168,75,.12);
}
body.ch-theme-bm-profile-cosmetic-effect-cosmic{
  --ch-bm-profile-border:rgba(139,92,246,.60);
  --ch-bm-profile-header:linear-gradient(110deg,#10182c,#241441 48%,#10273d);
  --ch-bm-profile-header-text:#f4f2ff;
  --ch-bm-profile-shadow:0 18px 48px rgba(99,102,241,.25),0 0 20px rgba(56,189,248,.12);
}
body.ch-theme-bm-profile-cosmetic-effect-aurora-veil{
  --ch-bm-profile-border:rgba(45,212,191,.58);
  --ch-bm-profile-header:linear-gradient(110deg,#0d2524,#12304b 48%,#222247);
  --ch-bm-profile-header-text:#eafffb;
  --ch-bm-profile-shadow:0 18px 46px rgba(45,212,191,.18),0 0 18px rgba(56,189,248,.13);
}
body.ch-theme-bm-profile-cosmetic-effect-obsidian-crown{
  --ch-bm-profile-border:rgba(151,163,179,.72);
  --ch-bm-profile-header:linear-gradient(180deg,#1d242d,#080b0f);
  --ch-bm-profile-header-text:#f7f9fb;
  --ch-bm-profile-shadow:0 18px 46px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.10);
}
body.ch-theme-bm-profile-cosmetic-effect-solar-horizon{
  --ch-bm-profile-border:rgba(249,115,22,.62);
  --ch-bm-profile-header:linear-gradient(110deg,#2a160d,#5a250d 48%,#25120d);
  --ch-bm-profile-header-text:#fff1db;
  --ch-bm-profile-shadow:0 18px 46px rgba(249,115,22,.20),0 0 18px rgba(251,191,36,.11);
}
body.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-bm-profile-border:rgba(236,241,248,.72);
  --ch-bm-profile-header:linear-gradient(105deg,#081b3c 0 38%,#f5f7fb 38% 42%,#a7192b 42% 48%,#0a2248 48% 100%);
  --ch-bm-profile-header-text:#fff;
  --ch-bm-profile-shadow:0 18px 48px rgba(7,31,70,.28),0 0 0 1px rgba(183,28,45,.20);
}

body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini){
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:var(--ch-bm-profile-shadow)!important;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.tabs,.chat-header,.bm-chat-header,.thread-header,.bm-thread-header,.bm-combined-header,.bm-header){
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-profile-header-text)!important;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.tabs,.chat-header,.bm-chat-header,.thread-header,.bm-thread-header,.bm-combined-header,.bm-header) :is(a,button,span,strong,svg){
  color:inherit!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini){transition:none!important}
}


/* v0.4.41 — mobile reward banner is structurally attached to the real header.
   The header owns its admin-bar reaction; the banner simply follows it. */
@media(max-width:782px){
  body.ch-theme > .ch-theme-header,
  body.ch-theme > .elementor-location-header{
    overflow:visible!important;
  }
  .ch-theme-header > .ch-reward-toast.ch-reward-toast--header-anchored,
  .elementor-location-header > .ch-reward-toast.ch-reward-toast--header-anchored{
    position:absolute!important;
    top:100%!important;
    bottom:auto!important;
    left:50%!important;
    right:auto!important;
    z-index:1!important;
    margin:0!important;
    transform:translate(-50%,-10px) scale(.99)!important;
  }
  .ch-theme-header > .ch-reward-toast.ch-reward-toast--header-anchored.is-visible,
  .elementor-location-header > .ch-reward-toast.ch-reward-toast--header-anchored.is-visible{
    transform:translate(-50%,0) scale(1)!important;
  }
}

/* v0.4.42 — Regression Recovery: mobile runtime restored to v0.4.40 for comment stability. */


/* =========================================================
   v0.4.57 — Better Messages mobile visual-dismiss recovery.
   Back #2 is already on the originating page. Better Messages 2.15.31 can
   leave its rendered mobile shell visible after mobile/fullscreen state is
   released. Hide only those lingering provider containers while the local
   dismissed marker is active. beginSession() removes this marker on reopen.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-bm-mobile-dismissed #bp-better-messages-mobile-view-container,
  body.ch-theme.ch-bm-mobile-dismissed #bp-better-messages-mini-mobile-container,
  body.ch-theme.ch-bm-mobile-dismissed .bp-messages-mobile,
  body.ch-theme.ch-bm-mobile-dismissed .bp-messages-full-screen{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}


/* =========================================================
   v0.4.61 — BM native-close Theme chrome recovery.
   Better Messages can remove its mobile shell before CommunityHub's session
   marker is cleaned. When no BM mobile/fullscreen shell remains, force the
   approved Theme chrome visible immediately; JS removes the stale marker too.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-bm-mobile-session:not(:has(.bp-messages-mobile)):not(:has(.bp-messages-full-screen)) .ch-theme-community-bar--bottom{
    display:flex!important;
  }
}


/* =========================================================
   v0.4.64 — Main-header Messages / Notifications feedback.
   Presentation-only acknowledgement; action behavior remains unchanged.
   ========================================================= */
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"],
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="shopping"]{
  transform:translateZ(0);
  transition:transform .16s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease;
}
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"]:active,
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-theme-notification-trigger]:active,
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="shopping"]:active{
  transform:scale(.90);
}
.ch-theme-header-quick-actions .ch-theme-header-icon-button.ch-header-action-ack{
  animation:ch-header-action-ack .46s cubic-bezier(.2,.8,.2,1);
}
.ch-theme-header-quick-actions .ch-theme-header-icon-button.ch-header-action-ack>span:first-child,
.ch-theme-header-quick-actions .ch-theme-header-icon-button.ch-header-action-ack>svg{
  animation:ch-header-action-icon .46s cubic-bezier(.2,.8,.2,1);
}
@keyframes ch-header-action-ack{
  0%{transform:scale(1);box-shadow:0 0 0 0 rgba(200,168,75,0)}
  28%{transform:scale(.88);box-shadow:0 0 0 0 rgba(200,168,75,.36)}
  58%{transform:scale(1.10);box-shadow:0 0 0 7px rgba(200,168,75,.13)}
  100%{transform:scale(1);box-shadow:0 0 0 11px rgba(200,168,75,0)}
}
@keyframes ch-header-action-icon{
  0%{transform:rotate(0deg) scale(1)}
  38%{transform:rotate(-10deg) scale(.92)}
  68%{transform:rotate(8deg) scale(1.08)}
  100%{transform:rotate(0deg) scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="shopping"]{
    transition:none!important;
  }
  .ch-theme-header-quick-actions .ch-theme-header-icon-button.ch-header-action-ack,
  .ch-theme-header-quick-actions .ch-theme-header-icon-button.ch-header-action-ack>span:first-child,
  .ch-theme-header-quick-actions .ch-theme-header-icon-button.ch-header-action-ack>svg{
    animation:none!important;
  }
}


/* =========================================================
   v0.4.65 — Header/BM interaction polish.
   ========================================================= */
@media(max-width:782px){
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"]{
    touch-action:manipulation;
    -webkit-tap-highlight-color:rgba(200,168,75,.16);
  }
}

/* Desktop BM widget owns the lower viewport while open. The class is added
   synchronously on launch and removed from provider-root class observation. */
@media(min-width:783px){
  body.ch-theme.ch-bm-chat-open .ch-theme-community-bar--bottom{
    display:none!important;
  }
}


/* =========================================================
   v0.4.66 — Mobile Messages matching quick-action feedback.
   Animation itself is Web Animations on pointerdown; these hints keep the
   button/icon on their own compositor layers so feedback paints immediately.
   ========================================================= */
@media(max-width:782px){
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"]>span:first-child,
  .ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-header-preview="messages"] svg{
    will-change:transform;
    backface-visibility:hidden;
  }
}


/* =========================================================
   v0.4.67 — Notification actions + identity visuals.
   Dual-theme presentation for header popup and full Notifications page.
   ========================================================= */
.ch-theme-notification-preview-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}
.ch-theme-notification-preview-head>div{
  display:grid;
  gap:2px;
}
.ch-theme-notification-preview-mark-all{
  appearance:none;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue) 48%,var(--ch-theme-border))!important;
  background:color-mix(in srgb,var(--ch-theme-blue) 10%,var(--ch-theme-surface))!important;
  color:var(--ch-theme-text)!important;
  border-radius:999px!important;
  padding:6px 9px!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  cursor:pointer;
  white-space:nowrap;
}
.ch-theme-notification-preview-mark-all:hover,
.ch-theme-notification-preview-mark-all:focus-visible{
  background:color-mix(in srgb,var(--ch-theme-blue) 18%,var(--ch-theme-surface))!important;
  border-color:var(--ch-theme-blue)!important;
  outline:none;
}
.ch-theme-notification-preview-mark-all:disabled{
  opacity:.62;
  cursor:wait;
}
.ch-theme-notification-preview-item{
  grid-template-columns:42px 7px minmax(0,1fr)!important;
  align-items:center!important;
}
.ch-theme-notification-preview-visual,
body.ch-theme .ch-notification-visual{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  overflow:hidden;
  box-sizing:border-box;
}
.ch-theme-notification-preview-visual--avatar,
body.ch-theme .ch-notification-visual--avatar{
  border:1px solid var(--ch-theme-border);
  background:var(--ch-theme-surface-soft);
}
.ch-theme-notification-preview-visual--avatar img,
body.ch-theme .ch-notification-visual--avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}
.ch-theme-notification-preview-visual--icon,
body.ch-theme .ch-notification-visual--icon{
  color:var(--ch-theme-blue);
  background:color-mix(in srgb,var(--ch-theme-blue) 10%,var(--ch-theme-surface));
  border:1px solid color-mix(in srgb,var(--ch-theme-blue) 30%,var(--ch-theme-border));
}
.ch-theme-notification-preview-visual--reward,
body.ch-theme .ch-notification-visual--reward{
  color:#a27612;
  background:color-mix(in srgb,#c8a84b 18%,var(--ch-theme-surface));
  border-color:color-mix(in srgb,#c8a84b 45%,var(--ch-theme-border));
}
.ch-theme-notification-preview-visual--shield,
body.ch-theme .ch-notification-visual--shield{
  color:#c2410c;
  background:color-mix(in srgb,#f97316 10%,var(--ch-theme-surface));
  border-color:color-mix(in srgb,#f97316 34%,var(--ch-theme-border));
}
.ch-theme-notification-preview-visual--announcement,
body.ch-theme .ch-notification-visual--announcement{
  color:#7c3aed;
  background:color-mix(in srgb,#8b5cf6 11%,var(--ch-theme-surface));
  border-color:color-mix(in srgb,#8b5cf6 34%,var(--ch-theme-border));
}
body.ch-theme .ch-notification-row{
  display:grid!important;
  grid-template-columns:42px 7px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
}
body.ch-theme .ch-notification-row .ch-notification-dot{
  align-self:center!important;
  margin:0!important;
}
html[data-ch-theme-mode="dark"] .ch-theme-notification-preview-mark-all{
  background:color-mix(in srgb,var(--ch-theme-blue) 16%,var(--ch-theme-surface))!important;
  color:var(--ch-theme-text)!important;
}
@media(max-width:782px){
  .ch-theme-notification-preview-head{
    gap:8px!important;
  }
  .ch-theme-notification-preview-mark-all{
    padding:6px 8px!important;
    font-size:9px!important;
  }
  body.ch-theme .ch-notification-row{
    grid-template-columns:40px 7px minmax(0,1fr)!important;
    gap:10px!important;
  }
  .ch-theme-notification-preview-visual,
  body.ch-theme .ch-notification-visual{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
}


/* =========================================================
   v0.4.68 — Hooligan of the Week widget presentation.
   Core owns weekly ranking/data. Theme owns appearance.
   ========================================================= */
body.ch-theme .ch-hooligan-week-card{
  --ch-hotw-surface:var(--ch-theme-surface,#fff);
  --ch-hotw-soft:color-mix(in srgb,#c8a84b 8%,var(--ch-hotw-surface));
  --ch-hotw-text:var(--ch-theme-text,#172033);
  --ch-hotw-muted:var(--ch-theme-text-muted,#667085);
  --ch-hotw-border:color-mix(in srgb,#c8a84b 30%,var(--ch-theme-border,#dbe3ec));
  --ch-hotw-gold:#a27612;
  position:relative;
  isolation:isolate;
  display:grid;
  justify-items:center;
  text-align:center;
  gap:9px;
  padding:22px 15px 15px;
  border:1px solid var(--ch-hotw-border)!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 50% -18%,rgba(200,168,75,.20),transparent 44%),
    linear-gradient(155deg,var(--ch-hotw-soft),var(--ch-hotw-surface) 58%)!important;
  box-shadow:0 10px 30px rgba(15,23,42,.08);
  color:var(--ch-hotw-text)!important;
  overflow:hidden;
}
body.ch-theme .ch-hooligan-week-card::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,transparent 4%,#c8a84b 34%,#ead78f 50%,#c8a84b 66%,transparent 96%);
}
body.ch-theme .ch-hooligan-week-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:115px;
  height:115px;
  left:50%;
  top:22px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(200,168,75,.14),rgba(200,168,75,0) 68%);
  pointer-events:none;
}
body.ch-theme .ch-hooligan-week-crown{
  top:9px!important;
  right:11px!important;
  width:27px;
  height:27px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:var(--ch-hotw-gold)!important;
  background:color-mix(in srgb,#c8a84b 13%,var(--ch-hotw-surface));
  border:1px solid color-mix(in srgb,#c8a84b 40%,var(--ch-theme-border,#dbe3ec));
  font-size:14px!important;
  box-shadow:0 4px 12px rgba(15,23,42,.08);
}
body.ch-theme .ch-hooligan-week-avatar{
  position:relative;
  width:88px!important;
  height:88px!important;
  padding:3px!important;
  border:2px solid #c8a84b!important;
  background:var(--ch-hotw-surface)!important;
  box-shadow:
    0 0 0 3px color-mix(in srgb,#c8a84b 13%,transparent),
    0 10px 24px rgba(15,23,42,.14)!important;
  transition:transform .18s ease,box-shadow .18s ease;
}
body.ch-theme .ch-hooligan-week-avatar:hover,
body.ch-theme .ch-hooligan-week-avatar:focus-visible{
  transform:translateY(-2px);
  box-shadow:
    0 0 0 4px color-mix(in srgb,#c8a84b 18%,transparent),
    0 13px 28px rgba(15,23,42,.16)!important;
  outline:none;
}
body.ch-theme .ch-hooligan-week-copy{
  gap:5px!important;
  max-width:100%;
}
body.ch-theme .ch-hooligan-week-name{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--ch-hotw-text)!important;
  font-size:16px!important;
  font-weight:900!important;
  letter-spacing:-.01em;
  text-decoration:none!important;
}
body.ch-theme .ch-hooligan-week-name:hover,
body.ch-theme .ch-hooligan-week-name:focus-visible{
  color:var(--ch-theme-blue,#2563eb)!important;
  text-decoration:none!important;
  outline:none;
}
body.ch-theme .ch-hooligan-week-points{
  margin-top:1px;
  padding:5px 9px;
  border-radius:999px;
  color:var(--ch-hotw-muted)!important;
  background:color-mix(in srgb,#c8a84b 8%,var(--ch-hotw-surface));
  border:1px solid color-mix(in srgb,#c8a84b 18%,var(--ch-theme-border,#dbe3ec));
  font-size:11px!important;
  line-height:1.25!important;
}
body.ch-theme .ch-hooligan-week-points strong{
  color:var(--ch-hotw-gold)!important;
  font-size:14px!important;
  font-weight:950;
}
body.ch-theme .ch-hooligan-week-period{
  width:100%;
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 72%,transparent);
  color:var(--ch-hotw-muted)!important;
  font-size:9px!important;
  font-weight:850!important;
  letter-spacing:.06em!important;
}
body.ch-theme .ch-hooligan-week-empty{
  border-color:var(--ch-theme-border,#dbe3ec)!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text-muted,#667085)!important;
}
body.ch-theme .ch-hooligan-week-empty>span{
  color:#a27612!important;
}

/* CommunityHub's authoritative dark-mode attribute. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hooligan-week-card{
  --ch-hotw-surface:var(--ch-theme-surface,#111827);
  --ch-hotw-soft:color-mix(in srgb,#c8a84b 10%,var(--ch-hotw-surface));
  --ch-hotw-text:var(--ch-theme-text,#f4f7fb);
  --ch-hotw-muted:var(--ch-theme-text-muted,#aab7c7);
  --ch-hotw-border:color-mix(in srgb,#c8a84b 34%,var(--ch-theme-border,#334155));
  --ch-hotw-gold:#e4c76f;
  background:
    radial-gradient(circle at 50% -18%,rgba(228,199,111,.18),transparent 44%),
    linear-gradient(155deg,var(--ch-hotw-soft),var(--ch-hotw-surface) 58%)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hooligan-week-avatar{
  box-shadow:
    0 0 0 3px rgba(228,199,111,.10),
    0 11px 26px rgba(0,0,0,.32)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hooligan-week-crown{
  background:rgba(228,199,111,.10);
  border-color:rgba(228,199,111,.28);
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hooligan-week-points{
  background:rgba(228,199,111,.07);
  border-color:rgba(228,199,111,.16);
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hooligan-week-empty{
  background:var(--ch-theme-surface,#111827)!important;
  border-color:var(--ch-theme-border,#334155)!important;
  color:var(--ch-theme-text-muted,#aab7c7)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-hooligan-week-empty>span{
  color:#e4c76f!important;
}

@media(max-width:782px){
  body.ch-theme .ch-hooligan-week-card{
    padding:19px 13px 13px;
    border-radius:16px!important;
  }
  body.ch-theme .ch-hooligan-week-avatar{
    width:80px!important;
    height:80px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-hooligan-week-avatar{
    transition:none!important;
  }
}


/* =========================================================
   v0.4.69 — Hooligan readability + Daily Spotlight family.
   ========================================================= */

/* Hooligan of the Week: approved card, readability-only refinement. */
body.ch-theme .ch-hooligan-week-points{
  padding:7px 11px!important;
  font-size:13px!important;
  line-height:1.35!important;
  font-weight:700!important;
}
body.ch-theme .ch-hooligan-week-points strong{
  font-size:16px!important;
}
body.ch-theme .ch-hooligan-week-period{
  padding-top:9px!important;
  font-size:11px!important;
  line-height:1.35!important;
  font-weight:850!important;
  letter-spacing:.035em!important;
}
@media(max-width:782px){
  body.ch-theme .ch-hooligan-week-points{
    font-size:13px!important;
  }
  body.ch-theme .ch-hooligan-week-period{
    font-size:11px!important;
  }
}

/* Reusable visual family for Phrase/Joke/Word/Animal/Flower of the Day. */
body.ch-theme .ch-daily-spotlight{
  --ch-daily-accent:var(--ch-theme-blue,#2563eb);
  --ch-daily-surface:var(--ch-theme-surface,#fff);
  --ch-daily-soft:color-mix(in srgb,var(--ch-daily-accent) 6%,var(--ch-daily-surface));
  --ch-daily-text:var(--ch-theme-text,#172033);
  --ch-daily-muted:var(--ch-theme-text-muted,#667085);
  --ch-daily-border:color-mix(in srgb,var(--ch-daily-accent) 18%,var(--ch-theme-border,#dbe3ec));
  position:relative;
  isolation:isolate;
  display:grid;
  gap:12px;
  padding:16px;
  border:1px solid var(--ch-daily-border)!important;
  border-radius:17px!important;
  color:var(--ch-daily-text)!important;
  background:
    radial-gradient(circle at 92% -8%,color-mix(in srgb,var(--ch-daily-accent) 12%,transparent),transparent 35%),
    linear-gradient(155deg,var(--ch-daily-soft),var(--ch-daily-surface) 58%)!important;
  box-shadow:0 9px 26px rgba(15,23,42,.07);
  overflow:hidden;
}
body.ch-theme .ch-daily-spotlight::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--ch-daily-accent),color-mix(in srgb,var(--ch-daily-accent) 20%,transparent));
}
body.ch-theme .ch-daily-spotlight-kicker{
  color:var(--ch-daily-accent)!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.11em!important;
  text-transform:uppercase;
}
body.ch-theme .ch-daily-spotlight-phrase{
  color:var(--ch-daily-text)!important;
  font-size:21px!important;
  line-height:1.15!important;
  font-weight:950!important;
  letter-spacing:-.025em;
}
body.ch-theme .ch-daily-spotlight-section{
  display:grid;
  gap:4px;
  padding-top:10px;
  border-top:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 72%,transparent);
}
body.ch-theme .ch-daily-spotlight-section>span{
  color:var(--ch-daily-muted)!important;
  font-size:10px!important;
  line-height:1.2!important;
  font-weight:950!important;
  letter-spacing:.055em!important;
  text-transform:uppercase;
}
body.ch-theme .ch-daily-spotlight-section p{
  margin:0!important;
  color:var(--ch-daily-text)!important;
  font-size:12px!important;
  line-height:1.48!important;
  font-weight:600;
}
body.ch-theme .ch-daily-spotlight-example{
  padding:10px 11px;
  border:1px solid color-mix(in srgb,var(--ch-daily-accent) 14%,var(--ch-theme-border,#dbe3ec));
  border-radius:11px;
  background:color-mix(in srgb,var(--ch-daily-accent) 5%,var(--ch-daily-surface));
}
body.ch-theme .ch-daily-spotlight-example p{
  font-style:italic;
}
body.ch-theme .ch-daily-spotlight-date{
  padding-top:8px;
  border-top:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 72%,transparent);
  color:var(--ch-daily-muted)!important;
  font-size:10px!important;
  line-height:1.3!important;
  font-weight:800!important;
  text-align:right;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-daily-spotlight{
  --ch-daily-surface:var(--ch-theme-surface,#111827);
  --ch-daily-soft:color-mix(in srgb,var(--ch-daily-accent) 10%,var(--ch-daily-surface));
  --ch-daily-text:var(--ch-theme-text,#f4f7fb);
  --ch-daily-muted:var(--ch-theme-text-muted,#aab7c7);
  --ch-daily-border:color-mix(in srgb,var(--ch-daily-accent) 26%,var(--ch-theme-border,#334155));
  box-shadow:0 11px 30px rgba(0,0,0,.24);
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-daily-spotlight-example{
  background:color-mix(in srgb,var(--ch-daily-accent) 8%,var(--ch-daily-surface));
}

@media(max-width:782px){
  body.ch-theme .ch-daily-spotlight{
    padding:14px;
    gap:11px;
    border-radius:15px!important;
  }
  body.ch-theme .ch-daily-spotlight-phrase{
    font-size:20px!important;
  }
  body.ch-theme .ch-daily-spotlight-section p{
    font-size:12px!important;
  }
}


/* =========================================================
   v0.4.70 — Phrase of the Day readability refinement.
   Preserve layout; soften typography below the kicker.
   ========================================================= */
body.ch-theme .ch-daily-spotlight-phrase{
  font-weight:760!important;
  letter-spacing:-.015em!important;
}
body.ch-theme .ch-daily-spotlight-section p{
  font-weight:500!important;
}
body.ch-theme .ch-daily-spotlight-section>span{
  font-weight:800!important;
}
body.ch-theme .ch-daily-spotlight-date{
  font-weight:700!important;
}


/* =========================================================
   v0.4.71 — Desktop Daily Spotlight presentation modal.
   Shared by Phrase/Hooligan and future opt-in spotlight cards.
   ========================================================= */
@media(min-width:783px){
  body.ch-theme .ch-spotlight-expandable{
    cursor:zoom-in;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  }
  body.ch-theme .ch-spotlight-expandable:hover{
    transform:translateY(-2px);
    box-shadow:0 13px 34px rgba(15,23,42,.12);
  }
  body.ch-theme .ch-spotlight-expandable:focus-visible{
    outline:2px solid var(--ch-theme-blue,#2563eb);
    outline-offset:3px;
  }
  html.ch-spotlight-modal-open{
    overflow:hidden!important;
  }
  .ch-spotlight-modal[hidden]{
    display:none!important;
  }
  .ch-spotlight-modal{
    position:fixed;
    inset:0;
    z-index:2147482000;
    display:grid;
    place-items:center;
    padding:42px;
    opacity:0;
    transition:opacity .17s ease;
  }
  .ch-spotlight-modal.is-open{
    opacity:1;
  }
  .ch-spotlight-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(5,10,20,.74);
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
  }
  .ch-spotlight-modal-dialog{
    position:relative;
    width:min(780px,calc(100vw - 84px));
    max-height:calc(100vh - 84px);
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    overflow:hidden;
    border:1px solid color-mix(in srgb,#c8a84b 28%,var(--ch-theme-border,#dbe3ec));
    border-radius:24px;
    background:var(--ch-theme-surface,#fff);
    color:var(--ch-theme-text,#172033);
    box-shadow:0 30px 90px rgba(0,0,0,.42);
    transform:translateY(14px) scale(.975);
    transition:transform .18s cubic-bezier(.2,.8,.2,1);
  }
  .ch-spotlight-modal.is-open .ch-spotlight-modal-dialog{
    transform:translateY(0) scale(1);
  }
  .ch-spotlight-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px;
    border-bottom:1px solid var(--ch-theme-border,#dbe3ec);
    background:
      radial-gradient(circle at 12% -80%,rgba(200,168,75,.17),transparent 48%),
      var(--ch-theme-surface,#fff);
  }
  .ch-spotlight-modal-header>div{
    min-width:0;
    display:grid;
    gap:4px;
  }
  .ch-spotlight-modal-kicker{
    color:#a27612;
    font-size:10px;
    line-height:1;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
  }
  .ch-spotlight-modal-header h2{
    margin:0!important;
    color:var(--ch-theme-text,#172033)!important;
    font-size:22px!important;
    line-height:1.15!important;
    font-weight:850!important;
  }
  .ch-spotlight-modal-close{
    appearance:none;
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--ch-theme-border,#dbe3ec);
    border-radius:50%;
    background:var(--ch-theme-surface-soft,#f4f7fb);
    color:var(--ch-theme-text,#172033);
    cursor:pointer;
    transition:transform .15s ease,background .15s ease,border-color .15s ease;
  }
  .ch-spotlight-modal-close:hover,
  .ch-spotlight-modal-close:focus-visible{
    transform:scale(1.06);
    border-color:#c8a84b;
    background:color-mix(in srgb,#c8a84b 10%,var(--ch-theme-surface,#fff));
    outline:none;
  }
  .ch-spotlight-modal-body{
    min-height:0;
    overflow:auto;
    padding:28px;
    overscroll-behavior:contain;
  }

  /* Larger Phrase of the Day presentation. */
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight{
    gap:17px!important;
    padding:28px!important;
    border-radius:21px!important;
    box-shadow:none!important;
    transform:none!important;
    cursor:default!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-kicker{
    font-size:12px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-phrase{
    font-size:34px!important;
    line-height:1.13!important;
    font-weight:760!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-section{
    gap:7px!important;
    padding-top:15px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-section>span{
    font-size:12px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-section p{
    font-size:17px!important;
    line-height:1.58!important;
    font-weight:480!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-example{
    padding:15px 17px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight-date{
    font-size:12px!important;
  }

  /* Larger Hooligan of the Week presentation. */
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-card{
    gap:15px!important;
    padding:34px 26px 24px!important;
    border-radius:22px!important;
    box-shadow:none!important;
    transform:none!important;
    cursor:default!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar{
    width:132px!important;
    height:132px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-name{
    font-size:26px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-points{
    padding:9px 14px!important;
    font-size:17px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-points strong{
    font-size:21px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-period{
    padding-top:13px!important;
    font-size:13px!important;
  }

  html[data-ch-theme-mode="dark"] .ch-spotlight-modal-dialog{
    background:var(--ch-theme-surface,#111827);
    border-color:rgba(228,199,111,.24);
    color:var(--ch-theme-text,#f4f7fb);
  }
  html[data-ch-theme-mode="dark"] .ch-spotlight-modal-header{
    background:
      radial-gradient(circle at 12% -80%,rgba(228,199,111,.13),transparent 48%),
      var(--ch-theme-surface,#111827);
    border-color:var(--ch-theme-border,#334155);
  }
  html[data-ch-theme-mode="dark"] .ch-spotlight-modal-kicker{
    color:#e4c76f;
  }
  html[data-ch-theme-mode="dark"] .ch-spotlight-modal-close{
    background:var(--ch-theme-surface-soft,#1c2636);
    border-color:var(--ch-theme-border,#334155);
    color:var(--ch-theme-text,#f4f7fb);
  }
}
@media(prefers-reduced-motion:reduce){
  .ch-spotlight-modal,
  .ch-spotlight-modal-dialog,
  body.ch-theme .ch-spotlight-expandable,
  .ch-spotlight-modal-close{
    transition:none!important;
  }
}


/* =========================================================
   v0.4.72 — Expanded Hooligan avatar containment.
   Keep the real profile photo inside the enlarged frame while preserving
   decorative cosmetic layers owned by the avatar surface.
   ========================================================= */
@media(min-width:783px){
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar{
    position:relative!important;
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar > img,
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar > picture,
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar > picture > img,
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar .avatar,
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar .ch-profile-avatar-img{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    display:block!important;
    object-fit:cover!important;
    object-position:center!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
  }

  /*
   * Only the photo is clipped. The anchor itself remains overflow-visible so
   * cosmetic rings/orbits/glows are not chopped off.
   */
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar > img,
  body.ch-theme .ch-spotlight-modal .ch-hooligan-week-avatar > picture{
    overflow:hidden!important;
  }
}

/* =========================================================
   v0.4.73 — Hooligan of the Week rail avatar containment.
   Keep the member photo circular inside the Hooligan frame on both the
   normal widget card and the expanded Spotlight presentation. Cosmetic
   pseudo-elements remain overflow-visible and are not clipped.
   ========================================================= */
body.ch-theme .ch-hooligan-week-avatar{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  overflow:visible!important;
}
body.ch-theme .ch-hooligan-week-avatar > img,
body.ch-theme .ch-hooligan-week-avatar > picture > img,
body.ch-theme .ch-hooligan-week-avatar .avatar,
body.ch-theme .ch-hooligan-week-avatar .ch-profile-avatar-img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:50%!important;
  clip-path:circle(50% at 50% 50%)!important;
  box-sizing:border-box!important;
}
body.ch-theme .ch-hooligan-week-avatar > picture{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  border-radius:50%!important;
}

/* =========================================================
   v0.4.74 — Back to Top cosmetic interaction-state retention.
   The equipped Navigation/Back-to-Top cosmetic remains the visual owner
   during hover, keyboard focus, active press, and sticky mobile hover.
   Presentation only: no geometry, visibility, scroll, or JS changes.
   ========================================================= */
body.ch-theme-nav-cosmetic-midnight-gold-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){
  background:linear-gradient(145deg,#d2ad46,#8b6615)!important;
  border-color:#f7db7c!important;color:#fff8dc!important;
  box-shadow:0 10px 28px rgba(139,102,21,.34),inset 0 1px 0 rgba(255,255,255,.25)!important;
}
body.ch-theme-nav-cosmetic-cosmic-current-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){
  background:linear-gradient(145deg,#2563eb,#7c3aed 62%,#db2777)!important;
  border-color:#a5b4fc!important;color:#fff!important;
  box-shadow:0 10px 30px rgba(99,102,241,.38),0 0 18px rgba(168,85,247,.24)!important;
}
body.ch-theme-nav-cosmetic-aurora-flow-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){
  background:linear-gradient(145deg,#0f766e,#14b8a6 42%,#2563eb)!important;
  border-color:#99f6e4!important;color:#f0fdfa!important;
  box-shadow:0 10px 28px rgba(20,184,166,.30),0 0 16px rgba(37,99,235,.20)!important;
}
body.ch-theme-nav-cosmetic-obsidian-steel-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){
  background:linear-gradient(145deg,#667382,#303b47 52%,#131a22)!important;
  border-color:#cbd5e1!important;color:#f8fafc!important;
  box-shadow:0 10px 26px rgba(15,23,42,.42),inset 0 1px 0 rgba(255,255,255,.22)!important;
}
body.ch-theme-nav-cosmetic-solar-ember-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){
  background:linear-gradient(145deg,#f59e0b,#ea580c 58%,#b91c1c)!important;
  border-color:#fde68a!important;color:#fff7ed!important;
  box-shadow:0 10px 30px rgba(234,88,12,.38),0 0 16px rgba(245,158,11,.22)!important;
}
body.ch-theme-nav-cosmetic-liberty-line-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){
  background:
    radial-gradient(circle at 28% 24%,rgba(255,255,255,.30) 0 1.5px,transparent 2px),
    linear-gradient(180deg,transparent 0 73%,#b91c1c 73% 79%,#f8fafc 79% 85%,#2563eb 85% 91%,transparent 91%),
    linear-gradient(180deg,#173a78 0%,#0b2554 52%,#071b3f 100%)!important;
  border-color:#f8fafc!important;color:#fff!important;
  box-shadow:0 0 0 2px #b91c1c,0 0 0 4px #1d4ed8,0 9px 26px rgba(7,27,63,.34),inset 0 1px 0 rgba(255,255,255,.24)!important;
}


/* =========================================================
   v0.4.75 — Desktop reaction picker shell authority
   Theme owns presentation. Keep the picker a compact rectangular card,
   preserve five reactions per row, and size the cells to the actual 40px
   Theme reaction buttons so edge artwork is never clipped.
   ========================================================= */
@media (min-width: 783px) {
  .ch-theme .ch-comment-reaction-wrap > .ch-reaction-picker {
    display: grid !important;
    grid-template-columns: repeat(5, 40px) !important;
    grid-auto-flow: row !important;
    width: max-content !important;
    min-width: 0 !important;
    max-width: none !important;
    gap: 6px !important;
    padding: 10px !important;
    border-radius: 6px !important;
    white-space: normal !important;
    overflow: visible !important;
    justify-content: start !important;
    align-content: start !important;
  }

  .ch-theme .ch-comment-reaction-wrap > .ch-reaction-picker .ch-reaction-option {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
  }
}

/* =========================================================
   v0.4.76 — Custom reaction image backgrounds
   Core stores the reaction's semantic background choice; Theme renders it.
   ========================================================= */
.ch-theme img.ch-reaction-icon-bg-clear{background:transparent!important}
.ch-theme img.ch-reaction-icon-bg-white{background:#fff!important;padding:3px!important;border-radius:6px!important;box-sizing:border-box!important}
.ch-theme img.ch-reaction-icon-bg-black{background:#000!important;padding:3px!important;border-radius:6px!important;box-sizing:border-box!important}


/* =========================================================
   v0.4.78 — Who's Online polished five-across realtime grid.
   Core owns presence/data refresh; Theme owns presentation.
   ========================================================= */
.ch-theme .ch-online-members-live{
  min-width:0!important;
}
.ch-theme .ch-online-members-list{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px 6px!important;
  align-items:start!important;
  width:100%!important;
  min-width:0!important;
}
.ch-theme .ch-online-member{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-width:0!important;
  gap:5px!important;
  padding:4px 1px!important;
  border-radius:10px!important;
  text-align:center!important;
  text-decoration:none!important;
  color:inherit!important;
  transition:background-color .16s ease,transform .16s ease!important;
}
@media(hover:hover) and (pointer:fine){
  .ch-theme .ch-online-member:hover{
    background:var(--ch-surface-raised,rgba(127,127,127,.10))!important;
    transform:translateY(-1px)!important;
  }
}
.ch-theme .ch-online-member-avatar{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:44px!important;
  height:44px!important;
  flex:0 0 44px!important;
  border-radius:50%!important;
}
.ch-theme .ch-online-member-avatar>img,
.ch-theme .ch-online-member-avatar img.avatar,
.ch-theme .ch-online-member-avatar img.photo{
  display:block!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  max-width:42px!important;
  max-height:42px!important;
  aspect-ratio:1/1!important;
  border-radius:50%!important;
  object-fit:cover!important;
}
.ch-theme .ch-online-member-avatar>i{
  position:absolute!important;
  right:0!important;
  bottom:1px!important;
  width:11px!important;
  height:11px!important;
  border:2px solid var(--ch-surface,var(--ch-card-bg,#fff))!important;
  border-radius:50%!important;
  background:#21c55d!important;
  box-sizing:border-box!important;
  z-index:3!important;
}
.ch-theme .ch-online-member-copy{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:1px!important;
}
.ch-theme .ch-online-member-copy strong{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:10px!important;
  font-weight:650!important;
  line-height:1.2!important;
}
.ch-theme .ch-online-member-copy .ch-user-badges,
.ch-theme .ch-online-member-copy .ch-badges{
  max-width:100%!important;
  justify-content:center!important;
}
.ch-theme .ch-online-members-empty{
  margin:8px 0!important;
  text-align:center!important;
  font-size:12px!important;
  line-height:1.45!important;
}
@media(max-width:340px){
  .ch-theme .ch-online-members-list{gap:8px 4px!important}
  .ch-theme .ch-online-member-avatar{width:40px!important;height:40px!important;flex-basis:40px!important}
  .ch-theme .ch-online-member-avatar>img,
  .ch-theme .ch-online-member-avatar img.avatar,
  .ch-theme .ch-online-member-avatar img.photo{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;max-height:38px!important}
}



/* =========================================================
   v0.4.79 — Who's Online micro-polish + mobile selected reaction scale.
   Preserve the approved five-across presence grid and Core realtime logic.
   Presentation only: subtle presence pulse and a clearer selected reaction
   in the mobile action slot. Other-member reaction summaries are untouched.
   ========================================================= */
.ch-theme .ch-online-member-avatar>img,
.ch-theme .ch-online-member-avatar img.avatar,
.ch-theme .ch-online-member-avatar img.photo{
  box-shadow:0 0 0 1px color-mix(in srgb,currentColor 10%,transparent)!important;
  transition:transform .18s ease,box-shadow .18s ease!important;
}
@media(hover:hover) and (pointer:fine){
  .ch-theme .ch-online-member:hover .ch-online-member-avatar>img,
  .ch-theme .ch-online-member:hover .ch-online-member-avatar img.avatar,
  .ch-theme .ch-online-member:hover .ch-online-member-avatar img.photo{
    transform:scale(1.035)!important;
    box-shadow:0 0 0 2px rgba(33,197,93,.20),0 4px 12px rgba(15,23,42,.10)!important;
  }
}
.ch-theme .ch-online-member-avatar>i{
  animation:ch-online-presence-pulse 2.2s ease-out infinite!important;
}
@keyframes ch-online-presence-pulse{
  0%,45%,100%{box-shadow:0 0 0 0 rgba(33,197,93,0)!important}
  12%{box-shadow:0 0 0 4px rgba(33,197,93,.18)!important}
  28%{box-shadow:0 0 0 7px rgba(33,197,93,0)!important}
}

@media(max-width:782px){
  .ch-theme .ch-action-row .ch-reaction-trigger.is-liked .ch-reaction-emoji{
    width:29px!important;
    min-width:29px!important;
    height:29px!important;
    font-size:29px!important;
    line-height:29px!important;
    margin-right:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .ch-theme .ch-action-row .ch-reaction-trigger.is-liked .ch-reaction-icon-img{
    width:29px!important;
    min-width:29px!important;
    height:29px!important;
    max-width:29px!important;
    max-height:29px!important;
    margin-right:0!important;
    object-fit:contain!important;
  }
  .ch-theme .ch-action-row .ch-reaction-trigger.is-liked .ch-reaction-icon-img.ch-reaction-icon-bg-white,
  .ch-theme .ch-action-row .ch-reaction-trigger.is-liked .ch-reaction-icon-img.ch-reaction-icon-bg-black{
    padding:2px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .ch-theme .ch-online-member-avatar>i{animation:none!important}
  .ch-theme .ch-online-member-avatar>img,
  .ch-theme .ch-online-member-avatar img.avatar,
  .ch-theme .ch-online-member-avatar img.photo{transition:none!important}
}

/* =========================================================
   v0.4.80 — Who's Online accent alignment.
   Preserve the approved 5-across layout/realtime behavior; presentation only.
   Use the site's configured Theme accent instead of a hard-coded green state.
   ========================================================= */
.ch-theme .ch-online-member-avatar>i{
  background:var(--ch-theme-accent,var(--ch-theme-blue,#0080ff))!important;
  animation:ch-online-presence-accent-pulse 2.2s ease-out infinite!important;
}
@media(hover:hover) and (pointer:fine){
  .ch-theme .ch-online-member:hover .ch-online-member-avatar>img,
  .ch-theme .ch-online-member:hover .ch-online-member-avatar img.avatar,
  .ch-theme .ch-online-member:hover .ch-online-member-avatar img.photo{
    box-shadow:0 0 0 2px color-mix(in srgb,var(--ch-theme-accent,var(--ch-theme-blue,#0080ff)) 22%,transparent),0 4px 12px rgba(15,23,42,.10)!important;
  }
}
@keyframes ch-online-presence-accent-pulse{
  0%,45%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ch-theme-accent,var(--ch-theme-blue,#0080ff)) 0%,transparent)!important}
  12%{box-shadow:0 0 0 4px color-mix(in srgb,var(--ch-theme-accent,var(--ch-theme-blue,#0080ff)) 20%,transparent)!important}
  28%{box-shadow:0 0 0 7px color-mix(in srgb,var(--ch-theme-accent,var(--ch-theme-blue,#0080ff)) 0%,transparent)!important}
}
@media(prefers-reduced-motion:reduce){.ch-theme .ch-online-member-avatar>i{animation:none!important}}


/* =========================================================
   v0.4.81 — Better Messages open-widget cosmetic + light-mode header recovery.
   Theme owns only the integration shell/chrome. Better Messages retains message
   bodies, composer, calls, reactions, menus, dimensions and transport.
   ========================================================= */
html[data-ch-theme-mode="light"] body.ch-theme :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.tabs,.chat-header,.chat > .head){
  background:var(--ch-theme-surface,#fff)!important;
  border-color:var(--ch-theme-border,#dbe3ec)!important;
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"] body.ch-theme :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.tabs,.chat-header,.chat > .head)
:is(.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data,a,button,span,strong){
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"] body.ch-theme :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.chat-header,.chat > .head)
:is(.controls,.thread-actions) :is(a,button,span,div,svg){
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"] body.ch-theme :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.chat-header,.chat > .head)
:is(.controls,.thread-actions) svg{
  fill:currentColor!important;
  stroke:currentColor;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-mini,.bp-better-messages-list) .chat.open{
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:var(--ch-bm-profile-shadow)!important;
}
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list.bm-widget-bubble .bm-bubble-panel{
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:var(--ch-bm-profile-shadow)!important;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.chat.open > .head,.chat-header){
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-profile-header-text)!important;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.chat.open > .head,.chat-header)
:is(.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data,a,button,span,strong){
  color:var(--ch-bm-profile-header-text)!important;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.chat.open > .head,.chat-header)
:is(.controls,.thread-actions) :is(a,button,span,div,svg){
  color:var(--ch-bm-profile-header-text)!important;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini) :is(.chat.open > .head,.chat-header)
:is(.controls,.thread-actions) svg{
  fill:currentColor!important;
  stroke:currentColor;
}
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-mini,.bp-better-messages-list) .chat.bm-chat-animated{
  transition:height .15s ease-out,box-shadow .15s ease,border-color .15s ease!important;
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-mini,.bp-better-messages-list) .chat.bm-chat-animated{transition:none!important}
}


/* =========================================================
   v0.4.82 — Better Messages cosmetic tab-state + edge-glow recovery.
   Preserve the approved open-conversation header. Theme owns only the
   integration shell/chrome; Better Messages retains its runtime behavior.
   ========================================================= */

/* The open Messages/Groups selector is one cosmetic family.
   Active = full cosmetic. Inactive = same cosmetic visually recessed. */
body.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs{
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-profile-header-text)!important;
}

body.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div:not([data-tab="bpbm-close"]){
  background:
    linear-gradient(rgba(0,0,0,.22),rgba(0,0,0,.22)),
    var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 68%,transparent)!important;
  opacity:.82;
  transition:opacity .16s ease,filter .16s ease,background .16s ease,box-shadow .16s ease!important;
}

body.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div:not([data-tab="bpbm-close"]) :is(span,svg){
  color:var(--ch-bm-profile-header-text)!important;
  fill:currentColor!important;
  stroke:currentColor;
}

body.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div.active:not([data-tab="bpbm-close"]){
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  opacity:1;
  filter:none!important;
  box-shadow:
    inset 0 -2px 0 color-mix(in srgb,var(--ch-bm-profile-border) 88%,white 12%)!important;
}

@media(hover:hover) and (pointer:fine){
  body.ch-theme-bm-profile-cosmetic
  .bp-better-messages-list.bm-widget-bubble
  .bm-bubble-panel > .tabs > div:not(.active):not([data-tab="bpbm-close"]):hover{
    opacity:.92;
  }
}

/* Cosmetic must remain visible in light mode too. These rules intentionally
   outrank the generic v0.4.81 light-mode fallback for the cosmetic widget. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div.active:not([data-tab="bpbm-close"]){
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border-color:var(--ch-bm-profile-border)!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div:not(.active):not([data-tab="bpbm-close"]){
  background:
    linear-gradient(rgba(0,0,0,.24),rgba(0,0,0,.24)),
    var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
}

/* Replace the broad ambient box shadow with a compact glow that follows
   the actual cosmetic border. Do not alter the approved conversation head. */
body.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel,
body.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list) .chat.open{
  border:1px solid var(--ch-bm-profile-border)!important;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 50%,transparent),
    0 0 10px color-mix(in srgb,var(--ch-bm-profile-border) 42%,transparent)!important;
}

/* Keep the panel's own radius/edge visible rather than painting an oversized
   rectangular aura beyond neighboring content. */
body.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel{
  overflow:hidden;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme-bm-profile-cosmetic
  .bp-better-messages-list.bm-widget-bubble
  .bm-bubble-panel > .tabs > div{
    transition:none!important;
  }
}


/* =========================================================
   v0.4.83 — Better Messages real tab DOM + attached cosmetic glow recovery.
   Targets BM's native .tabs > .messages-tab / sibling tab structure proven by
   the existing CommunityHub BM integration controller. The approved dark
   open-conversation header remains unchanged.
   ========================================================= */

/* Real Better Messages widget tab controls. Both tabs belong to the same
   equipped cosmetic family; active is full-strength, inactive is recessed. */
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs{
  border-color:var(--ch-bm-profile-border)!important;
  background:var(--ch-bm-profile-header)!important;
}
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab),
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > div:not(.bm-bubble-button){
  color:var(--ch-bm-profile-header-text)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 72%,transparent)!important;
  background:
    linear-gradient(rgba(0,0,0,.30),rgba(0,0,0,.30)),
    var(--ch-bm-profile-header)!important;
  opacity:.84!important;
  filter:saturate(.82) brightness(.78)!important;
  box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--ch-bm-profile-border) 52%,transparent)!important;
}
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab) :is(span,a,button,svg),
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > div:not(.bm-bubble-button) :is(span,a,button,svg){
  color:inherit!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab).active,
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > div.active:not(.bm-bubble-button){
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:
    inset 0 -2px 0 color-mix(in srgb,var(--ch-bm-profile-border) 88%,white 12%),
    inset 0 1px 0 rgba(255,255,255,.08)!important;
}

/* Light mode must keep the equipped cosmetic visible instead of reverting the
   real BM tabs to the provider's white/light defaults. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs,
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > div.active:not(.bm-bubble-button){
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border-color:var(--ch-bm-profile-border)!important;
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab):not(.active),
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > div:not(.active):not(.bm-bubble-button){
  background:
    linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),
    var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  opacity:.86!important;
  filter:saturate(.78) brightness(.76)!important;
}

/* Make the cosmetic effect read as an attached luminous edge, not a detached
   rectangular shadow. The first ring is on the border itself, with only a
   small soft halo immediately outside it. */
body.ch-theme-bm-profile-cosmetic :is(.bp-better-messages-list,.bp-better-messages-mini) .chat.open,
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list.bm-widget-bubble .bm-bubble-panel,
body.ch-theme-bm-profile-cosmetic .bp-better-messages-list.bm-opened{
  border:1px solid var(--ch-bm-profile-border)!important;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 28%,transparent),
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 72%,transparent),
    0 0 5px color-mix(in srgb,var(--ch-bm-profile-border) 46%,transparent)!important;
}

@media(hover:hover) and (pointer:fine){
  body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab):not(.active):hover,
  body.ch-theme-bm-profile-cosmetic .bp-better-messages-list .tabs > div:not(.active):not(.bm-bubble-button):hover{
    opacity:.94!important;
    filter:saturate(.9) brightness(.86)!important;
  }
}

/* =========================================================
   v0.4.84 — Better Messages light-background cosmetic strategy,
   closed-dark unified tab restoration, attached edge glow, and
   animated Community Nav handoff.

   Preserve the approved dark open-conversation header. Better Messages
   continues to own message UI/runtime; Theme owns only integration chrome.
   ========================================================= */

/* Dark mode: when the BM conversation list is simply sitting closed, restore
   the approved single unified cosmetic header instead of painting Messages
   and Groups as two separate button tiles. The split active/recessed state
   from v0.4.83 remains available while a chat is actually open. */
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list .tabs{
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
}
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab),
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list .tabs > div:not(.bm-bubble-button){
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  color:var(--ch-bm-profile-header-text)!important;
}

/* Light mode strategy: put the cosmetic color into the page backdrop while
   keeping BM's foreground surfaces light and readable. This avoids a dark
   cosmetic slab sitting on top of an otherwise bright Community page. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-theme-elementor-page){
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--ch-bm-profile-border) 24%,transparent),transparent 31rem),
    radial-gradient(circle at 92% 100%,color-mix(in srgb,var(--ch-bm-profile-border) 16%,transparent),transparent 34rem),
    var(--ch-theme-bg,#f3f6fb)!important;
}

html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.tabs,.chat-header,.chat > .head,.bm-chat-header,.thread-header,.bm-thread-header,.bm-combined-header,.bm-header){
  background:color-mix(in srgb,var(--ch-theme-surface,#fff) 94%,var(--ch-bm-profile-border) 6%)!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 72%,var(--ch-theme-border,#dbe3ec))!important;
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.tabs,.chat-header,.chat > .head,.bm-chat-header,.thread-header,.bm-thread-header,.bm-combined-header,.bm-header)
:is(a,button,span,strong,svg,.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data){
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.tabs,.chat-header,.chat > .head,.bm-chat-header,.thread-header,.bm-thread-header,.bm-combined-header,.bm-header) svg{
  fill:currentColor!important;
  stroke:currentColor;
}

/* In light mode the Messages/Groups controls stay as one quiet light header.
   The cosmetic remains visible through the page wash + border/edge glow, not
   a dark fill on every foreground control. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab),
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > div:not(.bm-bubble-button){
  background:transparent!important;
  color:var(--ch-theme-text,#182230)!important;
  filter:none!important;
  opacity:1!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > div.active:not(.bm-bubble-button){
  background:color-mix(in srgb,var(--ch-bm-profile-border) 11%,var(--ch-theme-surface,#fff))!important;
  box-shadow:inset 0 -2px 0 var(--ch-bm-profile-border)!important;
}

/* Remove the legacy ambient shadow from BM wrapper elements. It was the source
   of the visible dead space between the actual border and cosmetic glow. */
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini){
  box-shadow:none!important;
}

/* Apply border + glow to the exact visible shells themselves. Zero-spread
   shadow begins directly at the border edge, so there is no detached gap. */
body.ch-theme.ch-theme-bm-profile-cosmetic .bp-better-messages-list,
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini) .chat.open,
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .bm-bubble-panel{
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:
    0 0 6px color-mix(in srgb,var(--ch-bm-profile-border) 58%,transparent),
    inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 26%,transparent)!important;
}

/* Nav handoff: do not hard-display:none when BM opens. Let the already fixed
   bottom bar slide/fade out and return smoothly when BM closes. */
@media(min-width:783px){
  body.ch-theme .ch-theme-community-bar--bottom{
    display:block!important;
    visibility:visible!important;
    will-change:transform,opacity;
    transition:
      transform .24s cubic-bezier(.2,.75,.25,1),
      opacity .18s ease,
      visibility 0s linear 0s!important;
  }
  body.ch-theme.ch-bm-chat-open .ch-theme-community-bar--bottom{
    display:block!important;
    transform:translateY(calc(100% + 18px))!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:
      transform .24s cubic-bezier(.2,.75,.25,1),
      opacity .18s ease,
      visibility 0s linear .24s!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-theme-community-bar--bottom{
    transition:none!important;
  }
}



/* =========================================================
   v0.4.85 — BM active-tab depth, light cosmetic chrome,
   and powered-open edge glow.
   Dark open-conversation header remains intentionally unchanged.
   ========================================================= */

/* DARK / OPEN: both tabs remain one cosmetic family, but the selected
   control is the darker/recessed state as requested. */
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list .tabs{
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
}
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab),
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list .tabs > div:not(.bm-bubble-button){
  background:
    linear-gradient(rgba(255,255,255,.035),rgba(255,255,255,.035)),
    var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list .tabs > div.active:not(.bm-bubble-button){
  background:
    linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),
    var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  box-shadow:
    inset 0 1px 0 rgba(0,0,0,.22),
    inset 0 -2px 0 color-mix(in srgb,var(--ch-bm-profile-border) 72%,transparent)!important;
}

/* LIGHT: keep BM chrome bright, but visibly cosmetic. Use a soft tint made
   from the equipped cosmetic border rather than the dark cosmetic fill. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs{
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 14%,#fff) 0%,
      color-mix(in srgb,var(--ch-bm-profile-border) 6%,#fff) 58%,
      #fff 100%)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 72%,#dbe3ec)!important;
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab),
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > div:not(.bm-bubble-button){
  background:transparent!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:transparent!important;
  box-shadow:none!important;
  opacity:1!important;
  filter:none!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > div.active:not(.bm-bubble-button){
  background:color-mix(in srgb,var(--ch-bm-profile-border) 18%,#fff)!important;
  color:var(--ch-theme-text,#182230)!important;
  box-shadow:
    inset 0 -2px 0 var(--ch-bm-profile-border),
    inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 24%,transparent)!important;
}

/* Catch BM's tab-menu/dropdown bubble controls too; these were still reading
   as dark squares in light mode in the supplied screenshot. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > .bm-bubble-button,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs :is(button,.bm-bubble-button,.bpbm-dropdown-trigger){
  background:color-mix(in srgb,var(--ch-bm-profile-border) 10%,#fff)!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 48%,#dbe3ec)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs :is(svg,path){
  color:currentColor!important;
  fill:currentColor!important;
  stroke:currentColor;
}

/* LIGHT open-conversation header: stay bright but carry the cosmetic as a
   subtle tint and edge accent instead of falling back to a dark provider bar. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.chat.open > .head,.chat-header,.bm-chat-header,.thread-header,.bm-thread-header,.bm-combined-header,.bm-header){
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 12%,#fff),
      #fff 72%)!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 68%,#dbe3ec)!important;
}

/* Powered-up open state: stronger glow only while the widget/conversation is
   actually open. Zero spread keeps the light attached directly to the edge. */
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list,
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini) .chat.open,
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble .bm-bubble-panel{
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:
    0 0 8px color-mix(in srgb,var(--ch-bm-profile-border) 76%,transparent),
    0 0 16px color-mix(in srgb,var(--ch-bm-profile-border) 42%,transparent),
    inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 32%,transparent)!important;
}

/* =========================================================
   v0.4.86 — Better Messages state guard + minimized cosmetic header
   + light-mode cosmetic authority + energized open glow.
   The approved dark open-conversation header is intentionally untouched.
   ========================================================= */

/* Minimized conversation heads retain the equipped cosmetic instead of
   falling back to Better Messages' provider-default header. */
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat:not(.open) > .head{
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border-color:var(--ch-bm-profile-border)!important;
}
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat:not(.open) > .head :is(a,button,span,strong,svg,.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data){
  color:var(--ch-bm-profile-header-text)!important;
}
html[data-ch-theme-mode="dark"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat:not(.open) > .head svg{
  fill:currentColor!important;
  stroke:currentColor!important;
}

/* LIGHT: take complete authority over the BM tab strip. Provider button
   backgrounds/images must not reintroduce black/dark squares. The cosmetic is
   expressed as a bright tint, border, and accent line rather than dark chrome. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs{
  background-image:none!important;
  background-color:color-mix(in srgb,var(--ch-bm-profile-border) 9%,#fff)!important;
  border:1px solid color-mix(in srgb,var(--ch-bm-profile-border) 66%,#dbe3ec)!important;
  color:var(--ch-theme-text,#182230)!important;
  box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--ch-bm-profile-border) 58%,transparent)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > *{
  background-image:none!important;
  background-color:transparent!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > div.active:not(.bm-bubble-button){
  background-image:none!important;
  background-color:color-mix(in srgb,var(--ch-bm-profile-border) 18%,#fff)!important;
  box-shadow:
    inset 0 -2px 0 var(--ch-bm-profile-border),
    inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 24%,transparent)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs :is(button,.bm-bubble-button,.bpbm-dropdown-trigger,[role="button"]){
  background-image:none!important;
  background-color:transparent!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs :is(svg,path){
  color:currentColor!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}

/* Bright cosmetic treatment for minimized light-mode conversation heads. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat:not(.open) > .head{
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 14%,#fff),
      #fff 76%)!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 72%,#dbe3ec)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat:not(.open) > .head :is(a,button,span,strong,svg,.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data){
  color:var(--ch-theme-text,#182230)!important;
}

/* Open shells visually "power up". The zero-spread glow begins at the border
   itself; animation changes intensity only and never creates a dead gap. */
@keyframes ch-bm-powered-edge{
  0%,100%{
    box-shadow:
      0 0 7px color-mix(in srgb,var(--ch-bm-profile-border) 68%,transparent),
      0 0 15px color-mix(in srgb,var(--ch-bm-profile-border) 34%,transparent),
      inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 34%,transparent);
  }
  50%{
    box-shadow:
      0 0 11px color-mix(in srgb,var(--ch-bm-profile-border) 90%,transparent),
      0 0 24px color-mix(in srgb,var(--ch-bm-profile-border) 52%,transparent),
      inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 48%,transparent);
  }
}
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list,
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini) .chat.open,
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble .bm-bubble-panel{
  animation:ch-bm-powered-edge 2.4s ease-in-out infinite!important;
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
  .bp-better-messages-list,
  body.ch-theme.ch-theme-bm-profile-cosmetic
  :is(.bp-better-messages-list,.bp-better-messages-mini) .chat.open,
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
  .bp-better-messages-list.bm-widget-bubble .bm-bubble-panel{
    animation:none!important;
  }
}

/* =========================================================
   v0.4.87 — Better Messages light minimized-state authority
   + persistent cosmetic edge + groups repeat-click parity.
   ========================================================= */

/* LIGHT MODE: provider defaults must not re-darken the minimized BM widget. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble > *,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > *,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble :is(.messages-tab,.groups-tab,.bm-bubble-button,.bpbm-dropdown-trigger){
  background-image:none!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 9%,#fff),
      #fff 72%
    )!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 74%,#d6dee8)!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.tabs{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 12%,#fff),
      #fff 78%
    )!important;
  color:var(--ch-theme-text,#182230)!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.tabs > :is(.messages-tab,.groups-tab),
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.tabs > :is(.messages-tab,.groups-tab) *{
  background-color:transparent!important;
  color:var(--ch-theme-text,#182230)!important;
  filter:none!important;
  opacity:1!important;
}

/* Selected light-mode tab remains visibly selected without becoming a dark slab. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.tabs > :is(.messages-tab,.groups-tab).selected,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble
.tabs > :is(.messages-tab,.groups-tab)[aria-selected="true"]{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 22%,#fff),
      color-mix(in srgb,var(--ch-bm-profile-border) 10%,#fff)
    )!important;
  box-shadow:
    inset 0 -2px 0 var(--ch-bm-profile-border),
    inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 24%,transparent)!important;
}

/* Persistent cosmetic edge for minimized states. Open states layer the
   animated powered-up glow on top of this baseline edge treatment. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble,
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat:not(.open){
  border:1px solid var(--ch-bm-profile-border)!important;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 56%,transparent),
    0 0 8px color-mix(in srgb,var(--ch-bm-profile-border) 34%,transparent)!important;
}

/* LIGHT minimized conversation head: keep it bright but visibly cosmetic. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat:not(.open){
  background:#fff!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat:not(.open) > .head{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 15%,#fff),
      #fff 74%
    )!important;
  color:var(--ch-theme-text,#182230)!important;
  border-color:var(--ch-bm-profile-border)!important;
}

/* Open state deliberately remains stronger than the minimized baseline. */
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble,
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat.open{
  border-color:var(--ch-bm-profile-border)!important;
}

/* =========================================================
   v0.4.88 — Better Messages cosmetic consistency contract,
   Liberty Banner USA recovery, and light-mode cosmetic presence.
   ========================================================= */

/*
 * BM COSMETIC CONTRACT — ALL PROFILE COSMETICS
 * Closed/minimized Messages widget = one unified cosmetic section.
 * Conversation header = same cosmetic family whether open or minimized.
 * Do not visually split the resting Messages/Groups widget into two
 * independent cosmetic buttons.
 */
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble .tabs{
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
}
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble .tabs > :is(.messages-tab,.groups-tab),
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble .tabs > :is(.messages-tab,.groups-tab) *{
  background:transparent!important;
  background-image:none!important;
  border-color:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  color:var(--ch-bm-profile-header-text)!important;
}

/* PATRIOTIC / LIBERTY BANNER — unmistakably U.S.A.
   Navy canton + red/white horizontal flag stripes instead of the prior
   blue/white/red vertical-band treatment that could read as France. */
body.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-bm-profile-border:rgba(178,34,52,.78);
  --ch-bm-profile-header:
    radial-gradient(circle at 7% 24%,rgba(255,255,255,.96) 0 1px,transparent 1.8px),
    radial-gradient(circle at 15% 50%,rgba(255,255,255,.92) 0 1px,transparent 1.8px),
    radial-gradient(circle at 24% 26%,rgba(255,255,255,.92) 0 1px,transparent 1.8px),
    radial-gradient(circle at 31% 56%,rgba(255,255,255,.88) 0 1px,transparent 1.8px),
    linear-gradient(90deg,#0a3161 0 38%,transparent 38%),
    repeating-linear-gradient(180deg,#b31942 0 7px,#b31942 7px,#fff 7px,#fff 14px);
  --ch-bm-profile-header-text:#ffffff;
  --ch-bm-profile-shadow:
    0 0 9px rgba(10,49,97,.30),
    0 0 16px rgba(179,25,66,.18);
}

/* LIGHT MODE — tab switching should never produce dark slabs or heavy
   shadows. Keep the BM control strip bright, flat, and cosmetic-accented. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > *,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > * *{
  box-shadow:none!important;
  text-shadow:none!important;
  filter:none!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 14%,#fff),
      #fff 66%,
      color-mix(in srgb,var(--ch-bm-profile-border) 8%,#fff)
    )!important;
  border:1px solid color-mix(in srgb,var(--ch-bm-profile-border) 72%,#d8e0ea)!important;
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > :is(.messages-tab,.groups-tab){
  background:transparent!important;
  color:var(--ch-theme-text,#182230)!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > :is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > :is(.messages-tab,.groups-tab).selected,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .tabs > :is(.messages-tab,.groups-tab)[aria-selected="true"]{
  background:color-mix(in srgb,var(--ch-bm-profile-border) 15%,#fff)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 48%,transparent)!important;
  box-shadow:none!important;
}

/* LIGHT MODE COMMUNITY COSMETIC PRESENCE
   Put more of the equipped cosmetic into the page/background layer instead
   of darkening cards and controls. This makes light mode feel intentionally
   skinned while preserving white/readable content surfaces. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-theme-elementor-page){
  background:
    radial-gradient(circle at 4% 8%,
      color-mix(in srgb,var(--ch-bm-profile-border) 30%,transparent),
      transparent 25rem),
    radial-gradient(circle at 96% 18%,
      color-mix(in srgb,var(--ch-bm-profile-border) 22%,transparent),
      transparent 28rem),
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 7%,#eef5fc),
      #f7faff 40%,
      color-mix(in srgb,var(--ch-bm-profile-border) 5%,#eef5fc)
    ) fixed!important;
}

/* Carry a restrained cosmetic edge into primary Community light-mode
   surfaces without replacing their white backgrounds. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.ch-theme-community-main,.ch-theme-community-sidebar)
.ch-theme-widget,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-activity-item,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-community-card{
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 34%,var(--ch-theme-border,#dbe3ec))!important;
}

/* Conversation headers stay in one cosmetic family in both open/minimized
   states. Light mode uses a bright tint rather than the dark header token. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat > .head{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 16%,#fff),
      #fff 72%
    )!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-theme-text,#182230)!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat > .head :is(a,button,span,strong,svg,.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data){
  color:var(--ch-theme-text,#182230)!important;
}

/* =========================================================
   v0.4.89 — Header Messages toggle restoration + light-mode BM authority
   + Liberty cosmetic alignment with the approved Nav cosmetic.
   ========================================================= */

/* Liberty Banner follows the visual language of the approved Liberty Line Nav:
   deep navy unified surface, red top line, blue bottom line, cool blue border.
   This replaces the flag-panel treatment while remaining unmistakably U.S. */
body.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-bm-profile-border:#315ca8;
  --ch-bm-profile-header:linear-gradient(180deg,#0b1f4a,#08152f);
  --ch-bm-profile-header-text:#f8fafc;
  --ch-bm-profile-shadow:
    inset 0 2px 0 #b91c1c,
    inset 0 -2px 0 #1d4ed8,
    0 0 18px rgba(37,99,235,.18);
}

/* LIGHT MODE BM AUTHORITY
   Do not depend on BM's optional bm-widget-bubble class. Better Messages
   changes wrapper classes between minimized/open/group states, but .tabs is
   the stable native surface visible in all of them. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs{
  background-image:none!important;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 18%,#ffffff),
      #ffffff 56%,
      color-mix(in srgb,var(--ch-bm-profile-border) 10%,#ffffff)
    )!important;
  border:1px solid color-mix(in srgb,var(--ch-bm-profile-border) 74%,#d8e0ea)!important;
  color:#172033!important;
  box-shadow:none!important;
  text-shadow:none!important;
  filter:none!important;
}

/* Every native tab/button/pseudo-layer is reset so provider dark backgrounds
   cannot survive on the selected Messages tab or right-side dropdown button. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > *,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > * *,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs :is(button,[role="button"],.messages-tab,.groups-tab,.bm-bubble-button,.bpbm-dropdown-trigger){
  background-image:none!important;
  background-color:transparent!important;
  color:#172033!important;
  border-color:transparent!important;
  box-shadow:none!important;
  text-shadow:none!important;
  filter:none!important;
  opacity:1!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > *::before,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs > *::after{
  background:none!important;
  box-shadow:none!important;
}

/* Selected tab is a gentle cosmetic tint, never a black/dark slab. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs
:is(.messages-tab,.groups-tab).active,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs
:is(.messages-tab,.groups-tab).selected,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs
:is(.messages-tab,.groups-tab).current,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .tabs
:is(.messages-tab,.groups-tab)[aria-selected="true"]{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 25%,#fff),
      color-mix(in srgb,var(--ch-bm-profile-border) 13%,#fff)
    )!important;
  color:#111827!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 48%,transparent)!important;
  box-shadow:none!important;
}

/* In light mode the cosmetic lives primarily in the page/background layer.
   Make that presence intentionally visible in the gutters while retaining
   white cards/content. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-theme-elementor-page){
  background:
    radial-gradient(ellipse at 0% 18%,
      color-mix(in srgb,var(--ch-bm-profile-border) 36%,transparent) 0,
      color-mix(in srgb,var(--ch-bm-profile-border) 18%,transparent) 17rem,
      transparent 34rem),
    radial-gradient(ellipse at 100% 28%,
      color-mix(in srgb,var(--ch-bm-profile-border) 30%,transparent) 0,
      color-mix(in srgb,var(--ch-bm-profile-border) 14%,transparent) 19rem,
      transparent 38rem),
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 10%,#edf5fc),
      #f8fbff 42%,
      color-mix(in srgb,var(--ch-bm-profile-border) 8%,#edf5fc)
    ) fixed!important;
}

/* Add a restrained cosmetic edge to the primary light-mode community column
   without recoloring the readable white cards themselves. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.ch-theme-community-main,.ch-theme-community-content){
  border-inline-color:color-mix(in srgb,var(--ch-bm-profile-border) 46%,transparent)!important;
}

/* Light-mode conversation heads remain clearly cosmetic but bright. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat > .head{
  background-image:none!important;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 20%,#fff),
      #fff 64%,
      color-mix(in srgb,var(--ch-bm-profile-border) 9%,#fff)
    )!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 82%,#d8e0ea)!important;
  color:#172033!important;
  text-shadow:none!important;
}
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-mini,.bp-better-messages-list)
.chat > .head :is(a,button,span,strong,svg,.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data){
  color:#172033!important;
}

/* Preserve the unified cosmetic shell while closed/minimized. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab),
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list .tabs > :is(.messages-tab,.groups-tab) *{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}

/* =========================================================
   v0.4.97 — Mobile header quick-action animation without highlight.
   Keep the approved app-like motion feedback; remove the glow/ripple and
   native tap highlight from Messages, Notifications, and Cart.
   ========================================================= */
@media(max-width:782px){
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-header-preview="shopping"]{
    -webkit-tap-highlight-color:transparent!important;
  }

  /* Preserve the transform/icon animation while suppressing its light-up ring. */
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button.ch-header-action-ack{
    box-shadow:none!important;
  }

  /* Touch press/focus must not recolor or highlight the button. */
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-header-preview="messages"]:active,
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger]:active,
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-header-preview="shopping"]:active,
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-header-preview="messages"]:focus:not(:focus-visible),
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger]:focus:not(:focus-visible),
  .ch-theme-header-quick-actions
  .ch-theme-header-icon-button[data-ch-header-preview="shopping"]:focus:not(:focus-visible){
    box-shadow:none!important;
    filter:none!important;
  }
}

/* =========================================================
   v0.4.101 — CommunityHub Crypto Donations polish + address privacy.
   Theme owns presentation; Core owns wallet data/behavior/settings.
   ========================================================= */
.ch-crypto-donations{
  --ch-crypto-accent:var(--ch-theme-accent,#c8a84b);
  position:relative;
  display:grid;
  gap:15px;
  overflow:hidden;
  padding:17px;
  border:1px solid color-mix(in srgb,var(--ch-crypto-accent) 26%,var(--ch-theme-border,#dbe3ec));
  border-radius:18px;
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--ch-crypto-accent) 12%,transparent),transparent 38%),
    var(--ch-theme-surface,#fff);
  color:var(--ch-theme-text,#182230);
  box-shadow:0 10px 30px rgba(15,23,42,.07);
}
.ch-crypto-head{display:flex;align-items:flex-start;gap:11px}
.ch-crypto-mark{
  flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;
  border-radius:12px;background:var(--ch-crypto-accent);color:#111;
  font-size:20px;font-weight:900;box-shadow:0 5px 14px color-mix(in srgb,var(--ch-crypto-accent) 28%,transparent)
}
.ch-crypto-head-copy{min-width:0}
.ch-crypto-title{margin:1px 0 3px;font-size:1.04rem;line-height:1.25}
.ch-crypto-intro,.ch-crypto-disclaimer,.ch-crypto-network-note{margin:0;color:var(--ch-theme-muted,#667085);font-size:.84rem;line-height:1.5}
.ch-crypto-picker-wrap{display:grid;gap:6px}
.ch-crypto-picker-label{font-size:.72rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;color:var(--ch-theme-muted,#667085)}
.ch-crypto-picker{
  width:100%;min-height:44px;border:1px solid color-mix(in srgb,var(--ch-crypto-accent) 22%,var(--ch-theme-border,#dbe3ec));
  border-radius:11px;background:var(--ch-theme-surface,#fff);color:var(--ch-theme-text,#182230);
  padding:8px 36px 8px 12px;font-weight:700;outline:none;
}
.ch-crypto-picker:focus{border-color:var(--ch-crypto-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-crypto-accent) 16%,transparent)}
.ch-crypto-wallet-panel{
  display:grid;gap:13px;padding:14px;border:1px solid color-mix(in srgb,var(--ch-crypto-accent) 24%,var(--ch-theme-border,#dbe3ec));
  border-radius:14px;background:color-mix(in srgb,var(--ch-crypto-accent) 3%,var(--ch-theme-surface,#fff));
}
.ch-crypto-wallet-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ch-crypto-wallet-meta strong{font-size:.96rem}
.ch-crypto-network-pill{
  display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;
  background:color-mix(in srgb,var(--ch-crypto-accent) 13%,transparent);
  border:1px solid color-mix(in srgb,var(--ch-crypto-accent) 24%,transparent);
  color:var(--ch-theme-text,#182230)!important;font-size:.69rem!important;font-weight:750;white-space:nowrap
}
.ch-crypto-qr{
  display:block;width:min(170px,68%);aspect-ratio:1;object-fit:contain;margin:2px auto;
  padding:8px;border:1px solid var(--ch-theme-border,#dbe3ec);border-radius:14px;background:#fff;
  box-shadow:0 4px 14px rgba(15,23,42,.07)
}
.ch-crypto-address-wrap{display:grid;gap:8px}
.ch-crypto-address-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:var(--ch-theme-muted,#667085)}
.ch-crypto-address{
  display:block;overflow-wrap:anywhere;word-break:break-word;padding:10px 11px;border-radius:9px;
  border:1px solid var(--ch-theme-border,#dbe3ec);
  background:color-mix(in srgb,var(--ch-theme-text,#182230) 4%,transparent);
  color:var(--ch-theme-text,#182230);font-size:.76rem;line-height:1.45
}
.ch-crypto-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ch-crypto-actions:has(.ch-crypto-copy:only-child),.ch-crypto-actions:has(.ch-crypto-open-wallet:only-child){grid-template-columns:1fr}
.ch-crypto-copy,.ch-crypto-open-wallet{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:9px 11px;
  border-radius:10px;border:1px solid var(--ch-crypto-accent);background:var(--ch-crypto-accent);color:#111!important;
  text-decoration:none!important;font-weight:850;font-size:.8rem;cursor:pointer;
  transition:transform .15s ease,filter .15s ease,border-color .15s ease
}
.ch-crypto-open-wallet{background:transparent;color:var(--ch-theme-text,#182230)!important}
.ch-crypto-copy:hover,.ch-crypto-open-wallet:hover{transform:translateY(-1px);filter:brightness(1.035)}
.ch-crypto-copy:active,.ch-crypto-open-wallet:active{transform:translateY(0) scale(.985)}
.ch-crypto-copy.is-copied{transform:scale(.985)}
.ch-crypto-copy-status{min-height:0;font-size:0}
.ch-crypto-network-note{
  padding:9px 10px;border-radius:9px;border-left:3px solid #f59e0b;
  background:color-mix(in srgb,#f59e0b 9%,transparent);color:var(--ch-theme-text,#182230)
}
.ch-crypto-disclaimer{
  padding-top:11px;border-top:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 78%,transparent);
  font-size:.72rem
}
html[data-ch-theme-mode="dark"] .ch-crypto-donations{
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--ch-crypto-accent) 11%,transparent),transparent 40%),
    var(--ch-theme-surface,#111827);
  box-shadow:0 12px 34px rgba(0,0,0,.22)
}
html[data-ch-theme-mode="dark"] .ch-crypto-wallet-panel{background:color-mix(in srgb,var(--ch-crypto-accent) 4%,var(--ch-theme-surface,#111827))}
html[data-ch-theme-mode="dark"] .ch-crypto-address{background:rgba(255,255,255,.05)}
@media(max-width:600px){
  .ch-crypto-donations{padding:14px;border-radius:15px}
  .ch-crypto-actions{grid-template-columns:1fr}
  .ch-crypto-wallet-meta{align-items:flex-start;flex-direction:column;gap:6px}
  .ch-crypto-network-pill{white-space:normal}
}


/* v0.4.102 — hidden-address presentation: no warning/status message.
   When the raw address is not displayed, the actions stand on their own. */
.ch-crypto-address-wrap.is-address-hidden{
  gap:0;
}
.ch-crypto-address-wrap.is-address-hidden .ch-crypto-actions{
  margin-top:0;
}


/* =========================================================
   v0.4.103 — automatic locally generated Crypto Donation QR.
   ========================================================= */
.ch-crypto-qr-auto{
  display:grid;
  place-items:center;
  box-sizing:border-box;
}
.ch-crypto-qr-auto svg{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  border-radius:7px;
  shape-rendering:crispEdges;
}


/* v0.4.104 — Crypto donation Copy Address button text authority. */
.ch-crypto-copy,
.ch-crypto-copy:visited,
.ch-crypto-copy:hover,
.ch-crypto-copy:focus,
.ch-crypto-copy:active{
  color:#fff!important;
}
.ch-crypto-copy *{
  color:#fff!important;
}


/* =========================================================
   v0.4.105 — CommunityHub My Profile → Messages page.
   Core owns the route/tab/provider mount. Theme owns the profile-shell
   presentation. Better Messages retains thread UI, data, calls and controls.
   ========================================================= */
body.ch-theme-profile-messages-page .ch-theme-community-shell--messages{
  display:block!important;
  width:100%!important;
}
body.ch-theme-profile-messages-page .ch-theme-community-shell--messages > .ch-theme-community-content-wrap{
  width:100%!important;
  max-width:1240px!important;
  margin-inline:auto!important;
}
body.ch-theme-profile-messages-page .ch-profile-messages-route,
body.ch-theme-profile-messages-page .ch-profile-messages-section{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.ch-theme-profile-messages-page .ch-profile-messages-section{
  display:grid;
  gap:14px;
}
body.ch-theme-profile-messages-page .ch-profile-messages-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border:1px solid var(--ch-theme-border,#dbe3ec);
  border-radius:16px;
  background:linear-gradient(
    135deg,
    color-mix(in srgb,var(--ch-theme-surface,#fff) 94%,var(--ch-theme-blue,#2563eb)),
    var(--ch-theme-surface,#fff)
  );
  color:var(--ch-theme-text,#0f172a);
  box-shadow:var(--ch-theme-soft-shadow,0 10px 28px rgba(15,23,42,.06));
}
body.ch-theme-profile-messages-page .ch-profile-messages-header h2{
  margin:2px 0 3px;
  font-size:clamp(20px,2vw,27px);
  line-height:1.1;
  color:inherit;
}
body.ch-theme-profile-messages-page .ch-profile-messages-header p{
  margin:0;
  color:var(--ch-theme-muted,#64748b);
  font-size:13px;
}
body.ch-theme-profile-messages-page .ch-profile-section-kicker{
  display:inline-flex;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ch-theme-blue,#2563eb);
}
body.ch-theme-profile-messages-page .ch-profile-messages-shell{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* The CommunityHub profile chrome is shown on desktop so Messages is a true
   My Profile section. The messenger itself remains provider-owned. */
@media(min-width:783px){
  body.ch-theme-profile-messages-page .ch-profile-page{
    width:100%!important;
    max-width:none!important;
  }
  body.ch-theme-profile-messages-page .ch-profile-content{
    min-width:0!important;
  }
}

/* Mobile remains app-like/full-screen: once the member chooses Messages, do
   not stack the full profile card/tabs above the messaging app. */
@media(max-width:782px){
  body.ch-theme-profile-messages-page .ch-profile-card,
  body.ch-theme-profile-messages-page .ch-profile-tabs,
  body.ch-theme-profile-messages-page .ch-profile-messages-header{
    display:none!important;
  }
  body.ch-theme-profile-messages-page .ch-profile-page,
  body.ch-theme-profile-messages-page .ch-profile-content,
  body.ch-theme-profile-messages-page .ch-profile-messages-route,
  body.ch-theme-profile-messages-page .ch-profile-messages-section,
  body.ch-theme-profile-messages-page .ch-profile-messages-shell{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
  }
}

/* Dual-theme readability for the new CommunityHub-owned header only. */
html[data-ch-theme-mode="dark"] body.ch-theme-profile-messages-page .ch-profile-messages-header{
  background:linear-gradient(
    135deg,
    color-mix(in srgb,var(--ch-theme-surface,#121c2b) 92%,var(--ch-theme-blue,#2563eb)),
    var(--ch-theme-surface,#121c2b)
  )!important;
  border-color:var(--ch-theme-border,#26364d)!important;
  color:var(--ch-theme-text,#f5f7fb)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-profile-messages-page .ch-profile-messages-header p{
  color:var(--ch-theme-muted,#a8b5c7)!important;
}


/* =========================================================
   v0.4.106 — Profile Messages ownership recovery + desktop tab overflow.
   ========================================================= */

/* CommunityHub profile Messages keeps the same Profile layout/rail contract
   from initial render through Better Messages initialization. */
body.ch-theme-profile-messages-page .ch-theme-community-shell--profile{
  width:100%!important;
}
body.ch-theme-profile-messages-page .ch-profile-messages-shell{
  min-width:0!important;
  overflow:hidden;
}
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap-main,
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Do not inherit legacy/provider full-page BM rail suppression on the
   CommunityHub-owned Profile Messages route. */
body.ch-theme-profile-messages-page .ch-theme-community-sidebar{
  /* visibility remains entirely controlled by the Profile route setting */
}

/* Desktop My Profile navigation: never grow wider than the timeline/content
   stack. Stay one row and expose a real horizontal scrollbar when needed. */
@media(min-width:783px){
  .ch-theme-community-shell--profile .ch-profile-tabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    width:100%!important;
    max-width:var(--ch-profile-stack-width)!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    scrollbar-gutter:stable;
    -webkit-overflow-scrolling:touch;
  }
  .ch-theme-community-shell--profile .ch-profile-tabs > *{
    flex:0 0 auto!important;
  }
  .ch-theme-community-shell--profile .ch-profile-tabs::-webkit-scrollbar{
    height:8px;
  }
  .ch-theme-community-shell--profile .ch-profile-tabs::-webkit-scrollbar-track{
    background:color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 52%,transparent);
    border-radius:999px;
  }
  .ch-theme-community-shell--profile .ch-profile-tabs::-webkit-scrollbar-thumb{
    background:color-mix(in srgb,var(--ch-theme-accent,#2563eb) 48%,var(--ch-theme-border,#cbd5e1));
    border-radius:999px;
  }
}

/* Mobile keeps the existing app-like full-screen messenger presentation,
   but scoped only to the CH-owned Messages route. */
@media(max-width:782px){
  body.ch-theme-profile-messages-page .ch-theme-community-sidebar{
    display:none!important;
  }
}

/* =========================================================
   v0.4.107 — My Profile Messages visual integration.
   Presentation-only. Core v1.0.229 route/mount behavior remains untouched.
   ========================================================= */

@keyframes ch-profile-messages-arrive{
  0%{opacity:0;transform:translateY(7px) scale(.997)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* Blend the CommunityHub-owned title card into the active BM cosmetic family. */
body.ch-theme-profile-messages-page .ch-profile-messages-header{
  position:relative;
  overflow:hidden;
  border-color:var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec))!important;
  border-radius:15px!important;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb)) 10%,var(--ch-theme-surface,#fff)),
      var(--ch-theme-surface,#fff) 62%
    )!important;
  box-shadow:
    0 8px 24px rgba(15,23,42,.055),
    inset 0 1px 0 color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec)) 18%,transparent)!important;
}
body.ch-theme-profile-messages-page .ch-profile-messages-header::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb)) 22%,
    var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb)) 78%,
    transparent
  );
  opacity:.72;
  pointer-events:none;
}
body.ch-theme-profile-messages-page .ch-profile-messages-header .ch-profile-section-kicker{
  color:var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb))!important;
}

/* The embedded messenger becomes a single integrated CommunityHub surface.
   We touch only the outer shell, not Better Messages' internal controls. */
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap-main,
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap{
  position:relative;
  overflow:hidden!important;
  border:1px solid var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec))!important;
  border-radius:15px!important;
  background:var(--ch-theme-surface,#fff)!important;
  box-shadow:
    0 12px 32px rgba(15,23,42,.075),
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec)) 16%,transparent),
    0 0 18px color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb)) 10%,transparent)!important;
  animation:ch-profile-messages-arrive .32s cubic-bezier(.2,.8,.2,1) both;
}

/* Cosmetic edge highlight without recoloring provider-owned message surfaces. */
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap-main::before,
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap::before{
  content:"";
  position:absolute;
  z-index:6;
  pointer-events:none;
  inset:0;
  border-radius:inherit;
  box-shadow:
    inset 0 1px 0 color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec)) 30%,transparent),
    inset 1px 0 0 color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec)) 12%,transparent),
    inset -1px 0 0 color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec)) 12%,transparent);
}

/* Let the provider's main top chrome carry a restrained cosmetic tint so the
   page feels connected, while leaving buttons/thread internals untouched. */
body.ch-theme-profile-messages-page
.ch-profile-messages-shell
:is(.bp-messages-wrap-main,.bp-messages-wrap)
:is(.chat-header,.header,.bp-messages-header){
  border-color:color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#dbe3ec)) 54%,var(--ch-theme-border,#dbe3ec))!important;
}

/* Dual-theme authority. */
html[data-ch-theme-mode="dark"]
body.ch-theme-profile-messages-page .ch-profile-messages-header{
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb)) 10%,var(--ch-theme-surface,#111827)),
      var(--ch-theme-surface,#111827) 64%
    )!important;
  box-shadow:
    0 10px 26px rgba(0,0,0,.24),
    inset 0 1px 0 color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#334155)) 20%,transparent)!important;
}
html[data-ch-theme-mode="dark"]
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap-main,
html[data-ch-theme-mode="dark"]
body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap{
  background:var(--ch-theme-surface,#111827)!important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.28),
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-border,#334155)) 16%,transparent),
    0 0 20px color-mix(in srgb,var(--ch-bm-profile-border,var(--ch-theme-accent,#2563eb)) 12%,transparent)!important;
}

@media(max-width:782px){
  /* Mobile full-screen BM remains provider-shaped; do not add desktop shell
     rounding/margins around the app-like mobile experience. */
  body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap-main,
  body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap{
    border-radius:0!important;
    border-inline:0!important;
    box-shadow:none!important;
    animation:none!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap-main,
  body.ch-theme-profile-messages-page .ch-profile-messages-shell > .bp-messages-wrap{
    animation:none!important;
  }
}



/* =========================================================
   v0.4.108 — Edit Profile moved into Settings.
   Presentation only; profile navigation ordering is Core-owned.
   ========================================================= */
.ch-profile-settings-edit-card .ch-profile-edit-form.is-settings-embedded{
  margin-top:4px;
}
.ch-profile-settings-edit-card .ch-profile-edit-preview-row{
  margin-top:0;
}
.ch-profile-settings-edit-card .ch-profile-edit-form.is-settings-embedded .ch-profile-edit-actions{
  margin-bottom:0;
}
.ch-profile-settings-edit-card .ch-profile-edit-form.is-settings-embedded .ch-profile-edit-save{
  min-width:140px;
}

/* =========================================================
   v0.4.109 — My Profile About + Settings dual-theme readability contract.
   Theme owns presentation; Core owns profile/settings behavior and data.
   ========================================================= */

/* ABOUT — remove old hard-coded white-card assumptions so cosmetic text can
   never become white-on-white. */
body.ch-theme .ch-profile-about-card{
  background:var(--ch-theme-surface,#fff)!important;
  border-color:var(--ch-theme-border,#dbe3ec)!important;
  color:var(--ch-theme-text,#111827)!important;
}
body.ch-theme .ch-profile-about-row{
  border-color:var(--ch-theme-border,#e5eaf0)!important;
}
body.ch-theme .ch-profile-about-row strong,
body.ch-theme .ch-profile-about-bio strong{
  color:var(--ch-theme-text,#111827)!important;
}
body.ch-theme .ch-profile-about-row span,
body.ch-theme .ch-profile-about-bio,
body.ch-theme .ch-profile-about-bio p,
body.ch-theme .ch-profile-about-bio div{
  color:var(--ch-theme-muted,#475569)!important;
}
body.ch-theme .ch-profile-about-bio a{
  color:var(--ch-theme-blue,#2563eb)!important;
}

/* SETTINGS — one visual language across Edit Profile, Account and all other
   settings panels. Explicit variables prevent provider/cosmetic bleed. */
body.ch-theme .ch-profile-settings-shell{
  --ch-settings-ui-bg:var(--ch-theme-surface,#fff);
  --ch-settings-ui-soft:var(--ch-theme-surface-soft,#f8fafc);
  --ch-settings-ui-border:var(--ch-theme-border,#dbe3ec);
  --ch-settings-ui-text:var(--ch-theme-text,#111827);
  --ch-settings-ui-muted:var(--ch-theme-muted,#64748b);
  --ch-settings-ui-link:var(--ch-theme-blue,#2563eb);
  color:var(--ch-settings-ui-text)!important;
}

body.ch-theme .ch-profile-settings-nav,
body.ch-theme .ch-profile-settings-card,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-form,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-preview-row,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-avatar-card,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-cover-card,
body.ch-theme .ch-profile-account-field,
body.ch-theme .ch-profile-account-status-grid > div{
  background:var(--ch-settings-ui-bg)!important;
  border-color:var(--ch-settings-ui-border)!important;
  color:var(--ch-settings-ui-text)!important;
}

body.ch-theme .ch-profile-settings-card h1,
body.ch-theme .ch-profile-settings-card h2,
body.ch-theme .ch-profile-settings-card h3,
body.ch-theme .ch-profile-settings-card h4,
body.ch-theme .ch-profile-settings-card label,
body.ch-theme .ch-profile-settings-card strong,
body.ch-theme .ch-profile-settings-card legend,
body.ch-theme .ch-profile-settings-card .ch-profile-edit-field > span,
body.ch-theme .ch-profile-settings-card .ch-profile-edit-preview strong,
body.ch-theme .ch-profile-settings-card .ch-profile-account-field > span,
body.ch-theme .ch-profile-settings-card .ch-profile-account-status-grid span,
body.ch-theme .ch-profile-settings-card .ch-profile-account-status-grid strong{
  color:var(--ch-settings-ui-text)!important;
}

body.ch-theme .ch-profile-settings-card p,
body.ch-theme .ch-profile-settings-card small,
body.ch-theme .ch-profile-settings-card .description,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-field small,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-cover-empty{
  color:var(--ch-settings-ui-muted)!important;
}

body.ch-theme .ch-profile-settings-card a:not(.ch-profile-settings-button):not(.ch-profile-edit-save){
  color:var(--ch-settings-ui-link)!important;
}

/* Every editable field gets the same readable surface in both Account and Edit. */
body.ch-theme .ch-profile-settings-card input[type="text"],
body.ch-theme .ch-profile-settings-card input[type="email"],
body.ch-theme .ch-profile-settings-card input[type="password"],
body.ch-theme .ch-profile-settings-card input[type="url"],
body.ch-theme .ch-profile-settings-card input[type="number"],
body.ch-theme .ch-profile-settings-card input[type="file"],
body.ch-theme .ch-profile-settings-card select,
body.ch-theme .ch-profile-settings-card textarea{
  background:var(--ch-settings-ui-bg)!important;
  color:var(--ch-settings-ui-text)!important;
  border-color:var(--ch-settings-ui-border)!important;
  box-shadow:none!important;
}
body.ch-theme .ch-profile-settings-card input::placeholder,
body.ch-theme .ch-profile-settings-card textarea::placeholder{
  color:var(--ch-settings-ui-muted)!important;
  opacity:.78!important;
}
body.ch-theme .ch-profile-settings-card select option{
  background:var(--ch-settings-ui-bg)!important;
  color:var(--ch-settings-ui-text)!important;
}

/* Read-only Account cells use a subtle secondary surface, not a different
   text palette. */
body.ch-theme .ch-profile-account-field.is-readonly,
body.ch-theme .ch-profile-account-status-grid > div{
  background:var(--ch-settings-ui-soft)!important;
}
body.ch-theme .ch-profile-account-field.is-readonly > strong,
body.ch-theme .ch-profile-account-field.is-readonly > a{
  color:var(--ch-settings-ui-text)!important;
}

/* Secondary Settings buttons are uniform and readable. */
body.ch-theme .ch-profile-settings-button-secondary,
body.ch-theme .ch-profile-edit-cancel{
  background:var(--ch-settings-ui-bg)!important;
  color:var(--ch-settings-ui-link)!important;
  border-color:var(--ch-settings-ui-border)!important;
  box-shadow:none!important;
}
body.ch-theme .ch-profile-settings-button-secondary:hover,
body.ch-theme .ch-profile-settings-button-secondary:focus-visible,
body.ch-theme .ch-profile-edit-cancel:hover,
body.ch-theme .ch-profile-edit-cancel:focus-visible{
  background:var(--ch-settings-ui-soft)!important;
  color:var(--ch-settings-ui-link)!important;
}

/* Primary Save actions stay intentionally high contrast. */
body.ch-theme .ch-profile-settings-save,
body.ch-theme .ch-profile-edit-save{
  color:#fff!important;
}
body.ch-theme .ch-profile-settings-save *,
body.ch-theme .ch-profile-edit-save *{
  color:#fff!important;
}

/* Preview/media controls inside Edit Profile should match Settings rather
   than retaining older bright-white or cosmetic-inherited surfaces. */
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-cover-empty,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-avatar-preview,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-cover-preview{
  background:var(--ch-settings-ui-soft)!important;
  border-color:var(--ch-settings-ui-border)!important;
}
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-media-actions button,
body.ch-theme .ch-profile-settings-edit-card .ch-profile-edit-media-actions .button{
  background:var(--ch-settings-ui-bg)!important;
  color:var(--ch-settings-ui-text)!important;
  border-color:var(--ch-settings-ui-border)!important;
  box-shadow:none!important;
}

/* Dark mode is explicit so no white text/white surface or dark text/dark
   surface can leak through global cosmetics. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-card,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-settings-shell{
  --ch-settings-ui-bg:var(--ch-theme-surface,#17191d);
  --ch-settings-ui-soft:var(--ch-theme-surface-soft,#1d2025);
  --ch-settings-ui-border:var(--ch-theme-border,#343942);
  --ch-settings-ui-text:var(--ch-theme-text,#f2f4f7);
  --ch-settings-ui-muted:var(--ch-theme-muted,#aeb6c2);
  --ch-settings-ui-link:#8cc7ff;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-card{
  background:var(--ch-theme-surface,#17191d)!important;
  border-color:var(--ch-theme-border,#343942)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-row strong,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-bio strong{
  color:var(--ch-theme-text,#f2f4f7)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-row span,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-bio,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-bio p,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-about-bio div{
  color:var(--ch-theme-muted,#aeb6c2)!important;
}

/* =========================================================
   v0.4.110 — Settings Edit/Account color authority recovery.
   Exact overrides for legacy Core hard-coded colors and WebKit text fill.
   ========================================================= */

/* LIGHT MODE — force every visible field and read-only cell into one readable
   Settings palette, including Core rules that use !important/text-fill. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
.ch-profile-account-field,
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
.ch-profile-account-status-grid > div,
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card
:is(.ch-profile-edit-form,.ch-profile-edit-preview,.ch-profile-edit-avatar-card,.ch-profile-edit-cover-card){
  background:#ffffff!important;
  background-color:#ffffff!important;
  border-color:#dbe3ec!important;
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
}

html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
:is(.ch-profile-account-field > span,.ch-profile-account-field strong,.ch-profile-account-status-grid span,.ch-profile-account-status-grid strong),
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card
:is(.ch-profile-edit-field > span,.ch-profile-edit-preview > strong,.ch-profile-edit-preview strong){
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
}

html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
.ch-profile-account-field small,
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card
:is(.ch-profile-edit-field small,.ch-profile-edit-preview small,.ch-profile-edit-cover-empty){
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
}

/* Editable fields: text color, background, caret and browser autofill must all
   agree. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"],textarea,select){
  background:#ffffff!important;
  background-color:#ffffff!important;
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
  caret-color:#111827!important;
  border-color:#cbd5e1!important;
  box-shadow:none!important;
}

html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input,textarea)::placeholder{
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  opacity:1!important;
}

html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"]):-webkit-autofill,
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"]):-webkit-autofill:hover,
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"]):-webkit-autofill:focus{
  -webkit-text-fill-color:#111827!important;
  caret-color:#111827!important;
  box-shadow:0 0 0 1000px #ffffff inset!important;
  -webkit-box-shadow:0 0 0 1000px #ffffff inset!important;
  border-color:#cbd5e1!important;
}

html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card select option{
  background:#ffffff!important;
  color:#111827!important;
  -webkit-text-fill-color:#111827!important;
}

/* Account links/buttons. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-account-field a{
  color:#1d4ed8!important;
  -webkit-text-fill-color:#1d4ed8!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-settings-button-secondary{
  background:#f8fafc!important;
  color:#0f172a!important;
  -webkit-text-fill-color:#0f172a!important;
  border-color:#cbd5e1!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-settings-button-secondary:hover,
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-settings-button-secondary:focus-visible{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  -webkit-text-fill-color:#1d4ed8!important;
  border-color:#93c5fd!important;
}

/* Edit Profile media controls. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-file-button{
  background:#ffffff!important;
  color:#334155!important;
  -webkit-text-fill-color:#334155!important;
  border-color:#cbd5e1!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-file-button:hover{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  -webkit-text-fill-color:#1d4ed8!important;
  border-color:#93c5fd!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-remove-button{
  background:#fff7f7!important;
  color:#991b1b!important;
  -webkit-text-fill-color:#991b1b!important;
  border-color:#fecaca!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-remove-button:hover{
  background:#fef2f2!important;
  color:#7f1d1d!important;
  -webkit-text-fill-color:#7f1d1d!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-remove-button.is-removing{
  background:#991b1b!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}
html[data-ch-theme-mode="light"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-edit-message{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  -webkit-text-fill-color:#1d4ed8!important;
  border-color:#bfdbfe!important;
}

/* DARK MODE — explicit inversion for the same exact surfaces. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
.ch-profile-account-field,
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
.ch-profile-account-status-grid > div,
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card
:is(.ch-profile-edit-form,.ch-profile-edit-preview,.ch-profile-edit-avatar-card,.ch-profile-edit-cover-card){
  background:#17191d!important;
  background-color:#17191d!important;
  border-color:#343942!important;
  color:#f2f4f7!important;
  -webkit-text-fill-color:#f2f4f7!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
:is(.ch-profile-account-field > span,.ch-profile-account-field strong,.ch-profile-account-status-grid span,.ch-profile-account-status-grid strong),
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card
:is(.ch-profile-edit-field > span,.ch-profile-edit-preview > strong,.ch-profile-edit-preview strong){
  color:#f2f4f7!important;
  -webkit-text-fill-color:#f2f4f7!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card.ch-profile-account-card
.ch-profile-account-field small,
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card
:is(.ch-profile-edit-field small,.ch-profile-edit-preview small,.ch-profile-edit-cover-empty){
  color:#aeb6c2!important;
  -webkit-text-fill-color:#aeb6c2!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"],textarea,select){
  background:#1d2025!important;
  background-color:#1d2025!important;
  color:#f2f4f7!important;
  -webkit-text-fill-color:#f2f4f7!important;
  caret-color:#f2f4f7!important;
  border-color:#3b414b!important;
  box-shadow:none!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input,textarea)::placeholder{
  color:#aeb6c2!important;
  -webkit-text-fill-color:#aeb6c2!important;
  opacity:1!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"]):-webkit-autofill,
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"]):-webkit-autofill:hover,
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card
:is(input[type="text"],input[type="email"],input[type="password"],input[type="url"],input[type="number"]):-webkit-autofill:focus{
  -webkit-text-fill-color:#f2f4f7!important;
  caret-color:#f2f4f7!important;
  box-shadow:0 0 0 1000px #1d2025 inset!important;
  -webkit-box-shadow:0 0 0 1000px #1d2025 inset!important;
  border-color:#3b414b!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-card select option{
  background:#1d2025!important;
  color:#f2f4f7!important;
  -webkit-text-fill-color:#f2f4f7!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-account-field a{
  color:#8cc7ff!important;
  -webkit-text-fill-color:#8cc7ff!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-settings-button-secondary{
  background:#1d2025!important;
  color:#f2f4f7!important;
  -webkit-text-fill-color:#f2f4f7!important;
  border-color:#3b414b!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-settings-button-secondary:hover,
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-account-card .ch-profile-settings-button-secondary:focus-visible{
  background:#182337!important;
  color:#8cc7ff!important;
  -webkit-text-fill-color:#8cc7ff!important;
  border-color:#315d8f!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-file-button{
  background:#1d2025!important;
  color:#f2f4f7!important;
  -webkit-text-fill-color:#f2f4f7!important;
  border-color:#3b414b!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-file-button:hover{
  background:#182337!important;
  color:#8cc7ff!important;
  -webkit-text-fill-color:#8cc7ff!important;
  border-color:#315d8f!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-remove-button{
  background:#2a1719!important;
  color:#fca5a5!important;
  -webkit-text-fill-color:#fca5a5!important;
  border-color:#653237!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-remove-button:hover{
  background:#34191c!important;
  color:#fecaca!important;
  -webkit-text-fill-color:#fecaca!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-remove-button.is-removing{
  background:#991b1b!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-profile-settings-shell .ch-profile-settings-edit-card .ch-profile-edit-message{
  background:#182337!important;
  color:#8cc7ff!important;
  -webkit-text-fill-color:#8cc7ff!important;
  border-color:#315d8f!important;
}

/* Primary save button always remains readable over its colored background. */
body.ch-theme .ch-profile-settings-shell
:is(.ch-profile-settings-save,.ch-profile-edit-save),
body.ch-theme .ch-profile-settings-shell
:is(.ch-profile-settings-save,.ch-profile-edit-save) *{
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}

/* =========================================================
   v0.4.121 — Exact Profile Cosmetic → CommunityHub Bridge
   Clean recovery based on the approved v0.4.22 Profile widget treatment.
   No v0.4.112–v0.4.120 experimental grid/orb/star layers are included.
   ========================================================= */

/* Shared eligible CommunityHub surfaces. */
.ch-theme-community-shell.ch-theme-profile-cosmetic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
){
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

/* Midnight Gold — exact v0.4.22 language. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-midnight-gold
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-forum-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header
){
  border-color:rgba(200,168,75,.44)!important;
  background:
    linear-gradient(145deg,rgba(200,168,75,.045),transparent 42%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(200,168,75,.56),0 8px 22px rgba(91,68,8,.08)!important;
}

/* Cosmic — exact Profile widget geometry. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
){
  border-color:rgba(139,92,246,.44)!important;
  background:
    radial-gradient(circle at 14% 14%,rgba(56,189,248,.055),transparent 28%),
    radial-gradient(circle at 88% 4%,rgba(168,85,247,.065),transparent 30%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(139,92,246,.42),0 0 18px rgba(99,102,241,.08)!important;
}

/* Exact v0.4.22 star geometry. Three differently sized constellations avoid
   a checker/grid while giving every surface a real Cosmic identity. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
)::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 18% 22%,rgba(125,211,252,.48) 0 1px,transparent 1.7px),
    radial-gradient(circle at 72% 34%,rgba(196,181,253,.42) 0 1px,transparent 1.7px),
    radial-gradient(circle at 44% 78%,rgba(255,255,255,.36) 0 1px,transparent 1.7px);
  background-size:96px 96px,132px 132px,164px 164px;
  opacity:.48;
}

/* Light mode uses the SAME geometry, but the star colors are intentionally
   saturated so they remain visible against white. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
)::after{
  background:
    radial-gradient(circle at 18% 22%,rgba(2,132,199,.72) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 72% 34%,rgba(124,58,237,.68) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 44% 78%,rgba(79,70,229,.62) 0 1.1px,transparent 1.8px);
  background-size:96px 96px,132px 132px,164px 164px;
  opacity:.72;
}

/* Aurora Veil — exact Profile bridge language. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-aurora-veil
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-forum-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header
){
  border-color:rgba(45,212,191,.40)!important;
  background:
    linear-gradient(125deg,rgba(16,185,129,.045),rgba(56,189,248,.055),rgba(139,92,246,.045)),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(56,189,248,.42),0 0 18px rgba(45,212,191,.07)!important;
}

/* Obsidian Crown — exact Profile bridge language. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-obsidian-crown
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-forum-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header
){
  border-color:rgba(113,128,150,.58)!important;
  background:
    linear-gradient(145deg,rgba(15,23,42,.08),rgba(71,85,105,.055)),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(137,149,164,.64),0 8px 22px rgba(15,23,42,.10)!important;
}

/* Solar Horizon — exact Profile bridge language. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-solar-horizon
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-forum-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header
){
  border-color:rgba(251,146,60,.42)!important;
  background:
    radial-gradient(circle at 50% 115%,rgba(253,224,71,.075),rgba(249,115,22,.035) 34%,transparent 66%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(249,115,22,.46),0 0 18px rgba(249,115,22,.07)!important;
}

/* Dark mode: preserve the same Profile readability contract and star treatment
   already accepted on My Profile. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
){
  color:#f4f7fb!important;
  background-color:#121c2b!important;
}

/* Avoid decorating the Hooligan of the Week inner card with a second layer.
   Its widget wrapper can still inherit the Profile cosmetic cleanly. */
.ch-theme-community-shell.ch-theme-profile-cosmetic
.ch-hooligan-week-card::after{
  content:"";
}

/* Settings remains under the approved v0.4.110 readability authority when
   later Core/Theme lines carry this bridge forward. */
.ch-theme-community-shell.ch-theme-profile-cosmetic .ch-profile-settings-shell{
  isolation:auto;
}

@media(prefers-reduced-motion:reduce){
  .ch-theme-community-shell.ch-theme-profile-cosmetic
  :is(
    .ch-theme-community-sidebar .ch-theme-widget,
    .ch-activity-card:not(.ch-cosmetic-slot-post),
    .ch-profile-header-card,
    .ch-page-header,
    .ch-community-feed-header
  ){
    transition:none!important;
  }
}

/* =========================================================
   v0.4.122 — Cosmic spacing + Community glow parity.
   Refines the clean v0.4.121 Profile-based bridge only.
   ========================================================= */

/* Spread stars out by increasing constellation tile sizes and reducing opacity
   slightly. Same Profile geometry, just less crowded on Community surfaces. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
)::after{
  background-size:128px 128px,176px 176px,224px 224px!important;
  opacity:.40!important;
}

/* LIGHT MODE: more cosmic depth inside white surfaces. Rather than only a
   border, use a soft purple/cyan wash that fades through the card interior. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
){
  background:
    radial-gradient(circle at 8% 10%,rgba(56,189,248,.12),transparent 34%),
    radial-gradient(circle at 88% 8%,rgba(168,85,247,.13),transparent 36%),
    linear-gradient(145deg,rgba(99,102,241,.035),transparent 42%),
    var(--ch-theme-surface,#fff)!important;
  border-color:rgba(139,92,246,.40)!important;
  box-shadow:
    inset 3px 0 0 rgba(139,92,246,.46),
    inset 0 1px 0 rgba(56,189,248,.12),
    0 10px 26px rgba(76,29,149,.065),
    0 0 22px rgba(56,189,248,.11),
    0 0 30px rgba(139,92,246,.07)!important;
}

/* Light stars remain saturated enough to read against white, just more spaced. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
)::after{
  background:
    radial-gradient(circle at 18% 22%,rgba(2,132,199,.72) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 72% 34%,rgba(124,58,237,.68) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 44% 78%,rgba(79,70,229,.62) 0 1.1px,transparent 1.8px)!important;
  background-size:128px 128px,176px 176px,224px 224px!important;
  opacity:.62!important;
}

/* DARK MODE: leave the established star look alone but bring Community card
   aura closer to the richer My Profile treatment. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
){
  box-shadow:
    inset 2px 0 0 rgba(139,92,246,.34),
    inset 0 1px 0 rgba(56,189,248,.08),
    0 10px 28px rgba(0,0,0,.26),
    0 0 20px rgba(56,189,248,.10),
    0 0 30px rgba(139,92,246,.075)!important;
}

/* Hover/focus aura on desktop to match Profile's richer feel without making
   the static state too loud. */
@media(min-width:783px) and (hover:hover) and (pointer:fine){
  html[data-ch-theme-mode="light"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(.ch-activity-card:not(.ch-cosmetic-slot-post),.ch-member-card,.ch-group-card,.ch-forum-card,.ch-theme-community-sidebar .ch-theme-widget):hover{
    border-color:rgba(124,58,237,.50)!important;
    box-shadow:
      inset 3px 0 0 rgba(124,58,237,.54),
      0 12px 30px rgba(76,29,149,.08),
      0 0 26px rgba(56,189,248,.15),
      0 0 36px rgba(139,92,246,.10)!important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(.ch-activity-card:not(.ch-cosmetic-slot-post),.ch-member-card,.ch-group-card,.ch-forum-card,.ch-theme-community-sidebar .ch-theme-widget):hover{
    box-shadow:
      inset 2px 0 0 rgba(139,92,246,.42),
      0 12px 30px rgba(0,0,0,.30),
      0 0 24px rgba(56,189,248,.13),
      0 0 34px rgba(139,92,246,.10)!important;
  }
}

/* =========================================================
   v0.4.123 — Cosmic dark-surface continuity + Community glow parity.
   Light-mode interior/colors/stars from v0.4.122 remain unchanged.
   ========================================================= */

/* DARK COSMIC: older dark-mode readability rules force solid backgrounds on
   nested Activity containers. Inside a Cosmic card those become visible
   rectangular blocks that interrupt the cosmetic. Keep text colors/borders,
   but let the parent Cosmic surface show continuously through the post. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
.ch-activity-card:not(.ch-cosmetic-slot-post)
:is(
  .ch-activity-content,
  .ch-activity-header,
  .ch-activity-body,
  .ch-activity-text,
  .ch-activity-inner,
  .ch-activity-main,
  .ch-activity-footer,
  .ch-action-row
){
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
}

/* Common text wrappers should never paint their own dark rectangle either. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
.ch-activity-card:not(.ch-cosmetic-slot-post)
:is(
  .ch-activity-content > p,
  .ch-activity-content > div:not(.ch-link-preview-card):not(.ch-repost-card):not(.ch-repost-embed),
  .ch-activity-text > p,
  .ch-activity-text > div
){
  background:transparent!important;
  background-color:transparent!important;
}

/* Keep intentionally boxed embeds/previews boxed; only remove the accidental
   text-wrapper blocks. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
.ch-activity-card:not(.ch-cosmetic-slot-post)
:is(.ch-link-preview-card,.ch-repost-embed,.ch-original-post,.ch-quote-card){
  background-color:var(--ch-theme-surface,#121c2b)!important;
}

/*
 * v0.4.170 — Repost wrapper ownership correction.
 * Live DOM inspection confirmed .ch-repost-card is the structural outer
 * wrapper, not the owned embedded-post surface. The old Cosmic continuity
 * rule incorrectly boxed this wrapper with #121c2b, creating a rectangular
 * hole over the parent Cosmic post. Only .ch-repost-embed owns that box.
 */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
.ch-activity-card:not(.ch-cosmetic-slot-post)
.ch-repost-card{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}

/* The live Community timeline header uses several historical class names.
   Give every actual header alias the exact same Cosmic surface language. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-community-header,
  .ch-feed-header,
  .ch-community-feed-header
){
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-color:rgba(139,92,246,.44)!important;
  background:
    radial-gradient(circle at 14% 14%,rgba(56,189,248,.055),transparent 28%),
    radial-gradient(circle at 88% 4%,rgba(168,85,247,.065),transparent 30%),
    var(--ch-theme-surface,#fff)!important;
}

/* Reuse the clean v0.4.121 star geometry on the real Community header. */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(.ch-community-header,.ch-feed-header)::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 18% 22%,rgba(125,211,252,.48) 0 1px,transparent 1.7px),
    radial-gradient(circle at 72% 34%,rgba(196,181,253,.42) 0 1px,transparent 1.7px),
    radial-gradient(circle at 44% 78%,rgba(255,255,255,.36) 0 1px,transparent 1.7px);
  background-size:128px 128px,176px 176px,224px 224px;
  opacity:.40;
}

html[data-ch-theme-mode="light"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(.ch-community-header,.ch-feed-header)::after{
  background:
    radial-gradient(circle at 18% 22%,rgba(2,132,199,.72) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 72% 34%,rgba(124,58,237,.68) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 44% 78%,rgba(79,70,229,.62) 0 1.1px,transparent 1.8px);
  background-size:128px 128px,176px 176px,224px 224px;
  opacity:.62;
}

/* DARK header continuity: override older generic header backgrounds that
   otherwise flatten the Cosmic treatment. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(.ch-community-header,.ch-feed-header,.ch-community-feed-header){
  background:
    radial-gradient(circle at 14% 14%,rgba(56,189,248,.075),transparent 30%),
    radial-gradient(circle at 88% 4%,rgba(168,85,247,.085),transparent 32%),
    #121c2b!important;
  border-color:rgba(139,92,246,.38)!important;
  color:#f4f7fb!important;
}

/* COMMUNITY GLOW PARITY.
   My Profile remains untouched. Only Community-owned cards, headers and rails
   receive a stronger outer aura. Light mode interior treatment stays exactly
   as approved; only the surrounding glow is increased. */
html[data-ch-theme-mode="light"] body.ch-theme
.ch-theme-community-shell--community.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-community-header,
  .ch-feed-header,
  .ch-community-feed-header
){
  box-shadow:
    inset 3px 0 0 rgba(139,92,246,.46),
    inset 0 1px 0 rgba(56,189,248,.12),
    0 11px 28px rgba(76,29,149,.075),
    0 0 28px rgba(56,189,248,.15),
    0 0 40px rgba(139,92,246,.10)!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell--community.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-community-header,
  .ch-feed-header,
  .ch-community-feed-header
){
  box-shadow:
    inset 2px 0 0 rgba(139,92,246,.34),
    inset 0 1px 0 rgba(56,189,248,.08),
    0 11px 30px rgba(0,0,0,.28),
    0 0 26px rgba(56,189,248,.14),
    0 0 40px rgba(139,92,246,.105)!important;
}

/* Keep dark borders refined/subtle despite the stronger glow. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell--community.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-community-header,
  .ch-feed-header,
  .ch-community-feed-header
){
  border-color:rgba(139,92,246,.30)!important;
}

@media(prefers-reduced-motion:reduce){
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(.ch-community-header,.ch-feed-header,.ch-community-feed-header){
    transition:none!important;
  }
}

/* =========================================================
   v0.4.124 — Better Messages LIGHT MODE cosmetic recovery.
   Dark mode is intentionally untouched.
   Theme owns only integration shell/chrome/surface compatibility.
   Message bubbles, composer controls, calls, reactions and menus remain BM-owned.
   ========================================================= */

/* Light-mode defaults: replace the legacy dark BM cosmetic variables only
   when WordPress/CommunityHub itself is in light mode. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic{
  --ch-bm-profile-border:rgba(100,116,139,.34);
  --ch-bm-profile-header:
    linear-gradient(135deg,rgba(100,116,139,.08),rgba(148,163,184,.025) 46%,#fff 82%);
  --ch-bm-profile-header-text:#182230;
  --ch-bm-profile-shadow:
    0 14px 34px rgba(15,23,42,.08),
    0 0 16px rgba(100,116,139,.08);
  --ch-bm-light-surface:#ffffff;
  --ch-bm-light-soft:#f7f9fc;
  --ch-bm-light-text:#182230;
  --ch-bm-light-muted:#64748b;
}

/* Midnight Gold */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-midnight-gold{
  --ch-bm-profile-border:rgba(181,140,37,.48);
  --ch-bm-profile-header:
    linear-gradient(135deg,rgba(200,168,75,.16),rgba(255,244,196,.10) 42%,#fff 82%);
  --ch-bm-profile-header-text:#3c2d05;
  --ch-bm-profile-shadow:
    0 14px 34px rgba(91,68,8,.08),
    0 0 20px rgba(200,168,75,.16);
  --ch-bm-light-soft:#fffdf5;
}

/* Cosmic */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic{
  --ch-bm-profile-border:rgba(124,58,237,.42);
  --ch-bm-profile-header:
    radial-gradient(circle at 12% 18%,rgba(14,165,233,.13),transparent 31%),
    radial-gradient(circle at 87% 12%,rgba(147,51,234,.14),transparent 34%),
    linear-gradient(135deg,rgba(99,102,241,.07),rgba(255,255,255,.96) 68%);
  --ch-bm-profile-header-text:#312e81;
  --ch-bm-profile-shadow:
    0 14px 36px rgba(79,70,229,.09),
    0 0 24px rgba(14,165,233,.14),
    0 0 34px rgba(124,58,237,.08);
  --ch-bm-light-soft:#faf9ff;
}

/* Aurora */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-aurora-veil{
  --ch-bm-profile-border:rgba(15,159,145,.40);
  --ch-bm-profile-header:
    linear-gradient(125deg,rgba(16,185,129,.10),rgba(56,189,248,.09) 46%,rgba(139,92,246,.07) 78%,#fff);
  --ch-bm-profile-header-text:#0f5d57;
  --ch-bm-profile-shadow:
    0 14px 34px rgba(13,148,136,.08),
    0 0 22px rgba(45,212,191,.14);
  --ch-bm-light-soft:#f6fffd;
}

/* Obsidian */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-obsidian-crown{
  --ch-bm-profile-border:rgba(71,85,105,.42);
  --ch-bm-profile-header:
    linear-gradient(135deg,rgba(51,65,85,.12),rgba(148,163,184,.06) 48%,#fff 82%);
  --ch-bm-profile-header-text:#1e293b;
  --ch-bm-profile-shadow:
    0 15px 36px rgba(15,23,42,.11),
    0 0 16px rgba(100,116,139,.10);
  --ch-bm-light-soft:#f7f8fa;
}

/* Solar */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-solar-horizon{
  --ch-bm-profile-border:rgba(234,106,18,.40);
  --ch-bm-profile-header:
    radial-gradient(circle at 50% 120%,rgba(250,204,21,.18),rgba(249,115,22,.08) 32%,transparent 64%),
    #fff;
  --ch-bm-profile-header-text:#8a3412;
  --ch-bm-profile-shadow:
    0 14px 34px rgba(154,52,18,.08),
    0 0 20px rgba(249,115,22,.14);
  --ch-bm-light-soft:#fffaf5;
}

/* Liberty */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-bm-profile-border:rgba(36,87,166,.42);
  --ch-bm-profile-header:
    linear-gradient(105deg,rgba(36,87,166,.13) 0 37%,rgba(255,255,255,.96) 37% 43%,rgba(183,25,50,.10) 43% 49%,rgba(36,87,166,.055) 49% 100%);
  --ch-bm-profile-header-text:#153b76;
  --ch-bm-profile-shadow:
    0 14px 36px rgba(7,31,70,.09),
    0 0 18px rgba(36,87,166,.11);
  --ch-bm-light-soft:#f8fbff;
}

/* The minimized widget/list and open chat shell should be genuinely light,
   not a dark Better Messages canvas sitting inside light CommunityHub. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini){
  background:var(--ch-bm-light-surface,#fff)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-light-text,#182230)!important;
  box-shadow:var(--ch-bm-profile-shadow)!important;
}

/* Common BM list/shell surfaces. Do not target individual message bubbles. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(
  .bm-list,
  .bm-list-wrapper,
  .bm-list-content,
  .bm-threads-list,
  .bm-messages-listing,
  .better-messages-list,
  .threads-list,
  .chat,
  .chat.open,
  .bm-combined-list,
  .bm-combined-chat
){
  background-color:var(--ch-bm-light-surface,#fff)!important;
  color:var(--ch-bm-light-text,#182230)!important;
}

/* Conversation/list rows get a soft cosmetic-neutral surface on hover/active
   instead of black/dark gray. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.bm-list,.bm-threads-list,.threads-list)
:is(li,div)[class*="item"]{
  color:var(--ch-bm-light-text,#182230)!important;
}

html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.bm-active-list-item,.active,.selected){
  background-color:var(--ch-bm-light-soft,#f7f9fc)!important;
}

/* Header/tabs use the equipped light cosmetic rather than the old dark token. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(
  .tabs,
  .chat-header,
  .chat > .head,
  .chat.open > .head,
  .bm-chat-header,
  .thread-header,
  .bm-thread-header,
  .bm-combined-header,
  .bm-header,
  .bm-threads-top-bar
){
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-profile-header-text)!important;
}

/* Force readable header/tab labels/icons after the legacy dark cosmetic rules. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(
  .tabs,
  .chat-header,
  .chat > .head,
  .chat.open > .head,
  .bm-chat-header,
  .thread-header,
  .bm-thread-header,
  .bm-combined-header,
  .bm-header,
  .bm-threads-top-bar
)
:is(a,button,span,strong,.title,.name,.name a,.sub-name,.last-online,.group-online,.thread-info-data,svg){
  color:var(--ch-bm-profile-header-text)!important;
}

html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(
  .tabs,
  .chat-header,
  .chat > .head,
  .chat.open > .head,
  .bm-chat-header,
  .thread-header,
  .bm-thread-header,
  .bm-combined-header,
  .bm-header,
  .bm-threads-top-bar
) svg{
  fill:currentColor!important;
  stroke:currentColor;
}

/* List text/meta readability. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(
  .bm-sidebar-item-name,
  .bm-last-message-content,
  .bm-list-content,
  .bm-chat-header-title,
  .name,
  .title
){
  color:var(--ch-bm-light-text,#182230)!important;
}

html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(
  .bm-sidebar-item-status,
  .last-online,
  .sub-name,
  .bm-message-info
){
  color:var(--ch-bm-light-muted,#64748b)!important;
}

/* Bubble-panel/minimized shell follows the same light cosmetic frame. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble .bm-bubble-panel{
  background:var(--ch-bm-light-surface,#fff)!important;
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:var(--ch-bm-profile-shadow)!important;
}

/* Cosmic gets a small, non-tiled signature inside the BM chrome only.
   No message-body star overlay. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
:is(.bp-better-messages-list,.bp-better-messages-mini)
:is(.tabs,.chat-header,.chat > .head,.chat.open > .head,.bm-threads-top-bar){
  background-image:
    radial-gradient(circle at 12% 28%,rgba(2,132,199,.72) 0 1px,transparent 1.8px),
    radial-gradient(circle at 68% 22%,rgba(124,58,237,.68) 0 1px,transparent 1.8px),
    radial-gradient(circle at 88% 72%,rgba(79,70,229,.60) 0 1px,transparent 1.8px),
    var(--ch-bm-profile-header)!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
}

@media(prefers-reduced-motion:reduce){
  html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
  :is(.bp-better-messages-list,.bp-better-messages-mini){
    transition:none!important;
  }
}

/* =========================================================
   v0.4.125 — Better Messages unified cosmetic shell contract.
   - Closed widget = one uninterrupted cosmetic surface in ALL modes.
   - Open inactive tab = deeper equipped-cosmetic tone, never generic gray.
   - Open conversation glow attaches directly to border with no dead gap.
   Approved conversation-header appearance remains untouched.
   ========================================================= */

/* Deep/recessed cosmetic tone used only for an inactive tab while a chat is
   open. Each effect gets its own identity instead of neutral charcoal. */
body.ch-theme.ch-theme-bm-profile-cosmetic{
  --ch-bm-profile-deep:
    linear-gradient(rgba(8,15,26,.38),rgba(8,15,26,.38)),
    var(--ch-bm-profile-header);
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-midnight-gold{
  --ch-bm-profile-deep:
    linear-gradient(rgba(45,31,2,.34),rgba(45,31,2,.34)),
    var(--ch-bm-profile-header);
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic{
  --ch-bm-profile-deep:
    linear-gradient(110deg,rgba(49,46,129,.34),rgba(76,29,149,.34) 52%,rgba(3,105,161,.26)),
    var(--ch-bm-profile-header);
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-aurora-veil{
  --ch-bm-profile-deep:
    linear-gradient(110deg,rgba(5,94,86,.30),rgba(3,105,161,.28) 52%,rgba(91,33,182,.24)),
    var(--ch-bm-profile-header);
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-obsidian-crown{
  --ch-bm-profile-deep:
    linear-gradient(rgba(15,23,42,.34),rgba(15,23,42,.34)),
    var(--ch-bm-profile-header);
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-solar-horizon{
  --ch-bm-profile-deep:
    linear-gradient(110deg,rgba(124,45,18,.30),rgba(154,52,18,.34) 52%,rgba(120,53,15,.28)),
    var(--ch-bm-profile-header);
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-bm-profile-deep:
    linear-gradient(rgba(7,31,70,.24),rgba(7,31,70,.24)),
    var(--ch-bm-profile-header);
}

/* LIGHT MODE gets a visibly deeper cosmetic version while remaining tied to
   the equipped effect rather than dropping to gray. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic{
  --ch-bm-profile-deep:
    linear-gradient(
      135deg,
      color-mix(in srgb,var(--ch-bm-profile-border) 44%,#273449),
      color-mix(in srgb,var(--ch-bm-profile-border) 30%,#172033)
    );
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-midnight-gold{
  --ch-bm-profile-deep:linear-gradient(135deg,#756019,#4d3d09);
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic{
  --ch-bm-profile-deep:linear-gradient(110deg,#3730a3,#6d28d9 48%,#075985);
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-aurora-veil{
  --ch-bm-profile-deep:linear-gradient(110deg,#0f766e,#0369a1 50%,#5b21b6);
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-obsidian-crown{
  --ch-bm-profile-deep:linear-gradient(135deg,#334155,#111827);
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-solar-horizon{
  --ch-bm-profile-deep:linear-gradient(110deg,#9a3412,#c2410c 52%,#92400e);
}
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-bm-profile-deep:linear-gradient(105deg,#0a3161 0 42%,#9f1239 42% 52%,#0a3161 52% 100%);
}

/* ---------------------------------------------------------
   CLOSED / RESTING WIDGET — one cosmetic shell, never two tiles.
   This is the final authority in every mode.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel{
  background:var(--ch-bm-profile-header)!important;
  border:1px solid var(--ch-bm-profile-border)!important;
  border-radius:inherit!important;
  overflow:hidden!important;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 34%,transparent),
    0 0 9px color-mix(in srgb,var(--ch-bm-profile-border) 44%,transparent)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs{
  display:flex!important;
  background:var(--ch-bm-profile-header)!important;
  background-image:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border:0!important;
  border-radius:inherit!important;
  box-shadow:none!important;
  overflow:hidden!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > :is(.messages-tab,.groups-tab),
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div:not(.bm-bubble-button):not([data-tab="bpbm-close"]){
  background:transparent!important;
  background-image:none!important;
  color:var(--ch-bm-profile-header-text)!important;
  border:0!important;
  border-left:0!important;
  border-right:0!important;
  outline:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
}

/* Kill any provider/legacy divider painted between Messages and Groups. */
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > :is(.messages-tab,.groups-tab)::before,
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > :is(.messages-tab,.groups-tab)::after{
  content:none!important;
  display:none!important;
  border:0!important;
  background:none!important;
}

/* In light mode, closed widget must match the already-approved light open
   conversation header—not turn into a gray split control. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic:not(.ch-bm-chat-open)
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs{
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
}

/* ---------------------------------------------------------
   OPEN STATE — active stays header-family, inactive becomes a clearly darker
   version of THAT cosmetic. No generic gray.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs{
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > :is(.messages-tab,.groups-tab),
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div:not(.bm-bubble-button):not([data-tab="bpbm-close"]){
  background:var(--ch-bm-profile-deep)!important;
  color:#fff!important;
  opacity:1!important;
  filter:none!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 50%,transparent)!important;
  box-shadow:none!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > :is(.messages-tab,.groups-tab).active,
body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-chat-open
.bp-better-messages-list.bm-widget-bubble
.bm-bubble-panel > .tabs > div.active:not(.bm-bubble-button):not([data-tab="bpbm-close"]){
  background:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:
    inset 0 -2px 0 color-mix(in srgb,var(--ch-bm-profile-border) 78%,transparent)!important;
}

/* ---------------------------------------------------------
   OPEN CONVERSATION FRAME — attach cosmetic directly to visible border.
   Keep the approved conversation header itself completely untouched.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat.open{
  border:1px solid var(--ch-bm-profile-border)!important;
  outline:1px solid color-mix(in srgb,var(--ch-bm-profile-border) 32%,transparent)!important;
  outline-offset:-1px!important;
  border-radius:6px!important;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 40%,transparent),
    0 0 7px color-mix(in srgb,var(--ch-bm-profile-border) 54%,transparent),
    0 0 16px color-mix(in srgb,var(--ch-bm-profile-border) 24%,transparent)!important;
  background-clip:padding-box!important;
}

/* The chat body meets the header/frame without a white/transparent seam. */
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat.open > :is(.chat-header,.head):first-child{
  margin-top:-1px!important;
  margin-left:-1px!important;
  margin-right:-1px!important;
  width:calc(100% + 2px)!important;
  border-top-left-radius:6px!important;
  border-top-right-radius:6px!important;
}

/* Light mode preserves the exact header palette from v0.4.124. The only
   change here is continuity of the frame/glow around it. */
html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat.open{
  background:var(--ch-bm-light-surface,#fff)!important;
}

/* Dark mode uses this same unified closed-shell rule but otherwise retains all
   previously approved conversation cosmetics. */
@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .bp-better-messages-list.bm-widget-bubble .tabs > *{
    transition:none!important;
  }
}

/* =========================================================
   v0.4.126 — Better Messages exact provider-state recovery.
   Uses BM's real .bm-opened / .bm-bubble-open classes and native mini-chat
   spacing contract observed in provider source.
   ========================================================= */

/* ---------------------------------------------------------
   CLOSED / COLLAPSED LIST — exact BM state.
   BM's native .tabs > div.active background must NOT divide the resting bar.
   This applies in both modes by design: one cosmetic section, two labels.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:not(.bm-opened):not(.bm-bubble-open)
.tabs,
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble:not(.bm-bubble-open)
.tabs{
  background:var(--ch-bm-profile-header)!important;
  background-image:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-profile-header-text)!important;
  overflow:hidden!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:not(.bm-opened):not(.bm-bubble-open)
.tabs > div:not([data-tab="bpbm-close"]),
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble:not(.bm-bubble-open)
.tabs > div:not([data-tab="bpbm-close"]){
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  color:var(--ch-bm-profile-header-text)!important;
}

/* BM paints the selected tab via .tabs > div.active. Kill that exact provider
   rule while collapsed so Messages/Groups read as one uninterrupted shell. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:not(.bm-opened):not(.bm-bubble-open)
.tabs > div.active:not([data-tab="bpbm-close"]),
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble:not(.bm-bubble-open)
.tabs > div.active:not([data-tab="bpbm-close"]){
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}

/* Any nested icon/label inherits the SAME cosmetic color while resting. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:not(.bm-opened):not(.bm-bubble-open)
.tabs > div:not([data-tab="bpbm-close"]) *,
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.bm-widget-bubble:not(.bm-bubble-open)
.tabs > div:not([data-tab="bpbm-close"]) *{
  color:var(--ch-bm-profile-header-text)!important;
  fill:currentColor!important;
}

/* ---------------------------------------------------------
   OPEN LIST — exact .bm-opened / .bm-bubble-open provider state.
   Inactive tab is a deeper shade of the equipped cosmetic, never BM gray.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs{
  background:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:not(.active):not([data-tab="bpbm-close"]){
  background:var(--ch-bm-profile-deep)!important;
  background-color:transparent!important;
  background-image:var(--ch-bm-profile-deep)!important;
  border-color:color-mix(in srgb,var(--ch-bm-profile-border) 48%,transparent)!important;
  box-shadow:none!important;
  color:#fff!important;
  filter:none!important;
  opacity:1!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:not(.active):not([data-tab="bpbm-close"]) *{
  color:#fff!important;
  fill:currentColor!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div.active:not([data-tab="bpbm-close"]){
  background:var(--ch-bm-profile-header)!important;
  background-image:var(--ch-bm-profile-header)!important;
  color:var(--ch-bm-profile-header-text)!important;
  border-color:var(--ch-bm-profile-border)!important;
  box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--ch-bm-profile-border) 78%,transparent)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div.active:not([data-tab="bpbm-close"]) *{
  color:var(--ch-bm-profile-header-text)!important;
  fill:currentColor!important;
}

/* LIGHT COSMIC: the recessed tab should clearly be Cosmic, not neutral gray. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:not(.active):not([data-tab="bpbm-close"]){
  background:
    linear-gradient(110deg,rgba(49,46,163,.96),rgba(109,40,217,.96) 48%,rgba(7,89,133,.94))!important;
  color:#fff!important;
}

/* ---------------------------------------------------------
   OPEN MINI CONVERSATION — remove BM's native 10px side margin and remove
   cosmetic styling from the outer mini-container. The glow belongs directly
   on the real .chat.open boundary, eliminating the white moat.
   LIGHT ONLY: dark-mode mini conversation remains at its approved checkpoint.
   --------------------------------------------------------- */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-mini:has(.chat.open){
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  padding:0!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-mini .chats{
  padding:0!important;
  margin:0!important;
  background:transparent!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-mini .chat.open,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list .chat.open{
  margin-left:0!important;
  margin-right:0!important;
  border:1px solid var(--ch-bm-profile-border)!important;
  outline:0!important;
  border-radius:7px 7px 0 0!important;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 32%,transparent),
    0 0 8px color-mix(in srgb,var(--ch-bm-profile-border) 52%,transparent),
    0 0 18px color-mix(in srgb,var(--ch-bm-profile-border) 26%,transparent)!important;
  background:var(--ch-bm-light-surface,#fff)!important;
}

/* Undo v0.4.125's header negative margins: once the native 10px chat margin is
   gone, the header can sit normally inside the actual bordered conversation. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat.open > :is(.chat-header,.head):first-child{
  margin:0!important;
  width:100%!important;
  border-top-left-radius:6px!important;
  border-top-right-radius:6px!important;
}

/* The provider's conversation body/footer should meet the frame edge directly. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(.bp-better-messages-list,.bp-better-messages-mini)
.chat.open > :is(.bm-messages-list,.chat-content,.messages,.bm-reply,.chat-footer){
  margin-left:0!important;
  margin-right:0!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .bp-better-messages-list .tabs > div{
    transition:none!important;
  }
}

/* =========================================================
   v0.4.127 — BM resting-state hard authority + cosmetic ownership recovery.
   ========================================================= */

/* JS marks the truly collapsed widget. One continuous surface, regardless of
   which BM tab is internally selected. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.ch-bm-resting .tabs{
  background:var(--ch-bm-profile-header)!important;
  background-image:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  overflow:hidden!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.ch-bm-resting .tabs > div:not([data-tab="bpbm-close"]){
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  color:var(--ch-bm-profile-header-text)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.ch-bm-resting .tabs > div:not([data-tab="bpbm-close"]) *{
  color:var(--ch-bm-profile-header-text)!important;
  fill:currentColor!important;
}

/* Tone down the open inactive tab: still visibly cosmetic/recessed, but less
   saturated/heavy than v0.4.126. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.bp-better-messages-list.ch-bm-panel-visible
.tabs > div:not(.active):not([data-tab="bpbm-close"]){
  background:
    linear-gradient(110deg,rgba(67,56,202,.76),rgba(109,40,217,.72) 48%,rgba(3,105,161,.66))!important;
  color:#fff!important;
}

/* Generic light-mode inactive shade is also softened for non-Cosmic effects. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.ch-bm-panel-visible
.tabs > div:not(.active):not([data-tab="bpbm-close"]){
  filter:saturate(.88) brightness(1.10)!important;
}

/* ---------------------------------------------------------
   POST COSMETIC OWNERSHIP
   Core's .ch-cosmetic-slot-post is authoritative on every activity card.
   Profile cosmetics may skin page chrome/widgets, never overwrite a Post slot.
   --------------------------------------------------------- */
.ch-theme-community-shell.ch-theme-profile-cosmetic
.ch-activity-card.ch-cosmetic-slot-post{
  /* No Theme Profile-effect painting here. Core cosmetics.css owns this card. */
  isolation:isolate;
}

/* =========================================================
   v0.4.128 — Post animation recovery + Profile cosmetic logo frame.
   ========================================================= */

/* ---------------------------------------------------------
   POST COSMETICS — Core owns ALL post visuals and animation.
   v0.4.127's ::after revert could suppress Core animated perimeter layers.
   Restore exact Core pseudo ownership explicitly.
   --------------------------------------------------------- */
.ch-theme-community-shell.ch-theme-profile-cosmetic
.ch-activity-card.ch-cosmetic-slot-post::after{
  /* Do not invent/clear content here. Core cosmetics.css is authoritative. */
  z-index:5;
}

/* Explicitly preserve the known Core animated post effects after Theme CSS. */
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-neon-circuit{
  animation:inherit;
}
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-neon-circuit::after{
  content:""!important;
  animation:chCosmeticCircuitBorder 4.8s linear infinite!important;
}

.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-ember-edge{
  animation:chEmberEdgeBreathe 4.2s ease-in-out infinite!important;
}

.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-liberty-standard{
  animation:chLibertyPost 4.8s ease-in-out infinite!important;
}

.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-midnight-pulse-post{
  animation:chMidnightPost 4s ease-in-out infinite!important;
}

.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
  animation:chCosmicPost 5s ease-in-out infinite!important;
}

/* Theme must not override Post cosmetic box-shadow/background with Profile
   glow. These values remain entirely from Core cosmetics.css. */
.ch-theme-community-shell.ch-theme-profile-cosmetic
.ch-activity-card.ch-cosmetic-slot-post{
  filter:none;
}

/* ---------------------------------------------------------
   HEADER BRANDING LOGO FRAME → equipped Profile cosmetic.
   Existing admin-selected frame mode (Subtle/Accent/Glow) remains the strength
   control; Profile cosmetic supplies its identity/color.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic{
  --ch-profile-frame-accent:var(--ch-theme-accent,#1473e6);
  --ch-profile-frame-rgb:20,115,230;
  --ch-profile-frame-accent-2:var(--ch-profile-frame-accent);
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-midnight-gold{
  --ch-profile-frame-accent:#c8a84b;
  --ch-profile-frame-rgb:200,168,75;
  --ch-profile-frame-accent-2:#f3df91;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic{
  --ch-profile-frame-accent:#7c3aed;
  --ch-profile-frame-rgb:124,58,237;
  --ch-profile-frame-accent-2:#38bdf8;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-aurora-veil{
  --ch-profile-frame-accent:#14b8a6;
  --ch-profile-frame-rgb:20,184,166;
  --ch-profile-frame-accent-2:#38bdf8;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-obsidian-crown{
  --ch-profile-frame-accent:#64748b;
  --ch-profile-frame-rgb:100,116,139;
  --ch-profile-frame-accent-2:#cbd5e1;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-solar-horizon{
  --ch-profile-frame-accent:#f97316;
  --ch-profile-frame-rgb:249,115,22;
  --ch-profile-frame-accent-2:#facc15;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-liberty-banner{
  --ch-profile-frame-accent:#2457a6;
  --ch-profile-frame-rgb:36,87,166;
  --ch-profile-frame-accent-2:#b71932;
}

/* Subtle = cosmetic hint. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-brand-frame--subtle .custom-logo-link{
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.34),
    0 3px 10px rgba(0,0,0,.10),
    0 0 8px rgba(var(--ch-profile-frame-rgb),.08)!important;
}

/* Accent = clear Profile cosmetic ring. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-brand-frame--accent .custom-logo-link{
  box-shadow:
    0 0 0 2px var(--ch-profile-frame-accent),
    0 3px 12px rgba(0,0,0,.12),
    0 0 10px rgba(var(--ch-profile-frame-rgb),.16)!important;
}

/* Glow = full Profile cosmetic aura. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-brand-frame--glow .custom-logo-link{
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.66),
    0 0 13px rgba(var(--ch-profile-frame-rgb),.38),
    0 0 24px color-mix(in srgb,var(--ch-profile-frame-accent-2) 24%,transparent)!important;
}

/* Cosmic frame gets the same slow color-breath language as the profile skin. */
@keyframes chLogoCosmicFrame{
  0%,100%{
    box-shadow:
      0 0 0 1px rgba(124,58,237,.68),
      0 0 12px rgba(124,58,237,.34),
      0 0 22px rgba(56,189,248,.18);
  }
  50%{
    box-shadow:
      0 0 0 1px rgba(56,189,248,.74),
      0 0 17px rgba(56,189,248,.42),
      0 0 30px rgba(124,58,237,.26);
  }
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.ch-theme-brand-frame--glow .custom-logo-link{
  animation:chLogoCosmicFrame 4.6s ease-in-out infinite;
}

/* Clip-path logo shapes use drop-shadow instead of a rectangular box shadow.
   Feed the Profile cosmetic color into the already-approved frame mechanism. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-brand-frame--accent:is(
  .ch-theme-brand-shape--diamond,
  .ch-theme-brand-shape--hexagon,
  .ch-theme-brand-shape--shield,
  .ch-theme-brand-shape--triangle
) .custom-logo-link,
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-brand-frame--glow:is(
  .ch-theme-brand-shape--diamond,
  .ch-theme-brand-shape--hexagon,
  .ch-theme-brand-shape--shield,
  .ch-theme-brand-shape--triangle
) .custom-logo-link{
  filter:drop-shadow(0 0 6px rgba(var(--ch-profile-frame-rgb),.55))!important;
}

@media(prefers-reduced-motion:reduce){
  .ch-activity-card.ch-cosmetic-slot-post,
  .ch-activity-card.ch-cosmetic-slot-post::after,
  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  .ch-theme-brand-frame--glow .custom-logo-link{
    animation:none!important;
  }
}

/* =========================================================
   v0.4.129 — Profile cosmetic header identity + BM control polish.
   Presentation-only. Approved BM shell/open-conversation behavior remains.
   ========================================================= */

/* ---------------------------------------------------------
   HEADER IDENTITY CONTROLS
   Messages, Notifications, Mode and Avatar inherit the equipped Profile
   cosmetic. Shopping intentionally remains outside this request.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic
:is(
  .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
  .ch-theme-mode-toggle,
  .ch-theme-account-toggle
){
  border-color:rgba(var(--ch-profile-frame-rgb),.46)!important;
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.18),
    0 0 9px rgba(var(--ch-profile-frame-rgb),.16),
    0 5px 16px rgba(15,23,42,.07)!important;
  transition:
    border-color .16s ease,
    box-shadow .18s ease,
    background .16s ease,
    transform .12s ease!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
:is(
  .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
  .ch-theme-mode-toggle,
  .ch-theme-account-toggle
):is(:hover,:focus-visible){
  border-color:var(--ch-profile-frame-accent)!important;
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.42),
    0 0 13px rgba(var(--ch-profile-frame-rgb),.28),
    0 0 21px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent),
    0 6px 18px rgba(15,23,42,.08)!important;
}

/* Stronger Glow-frame identity when that branding intensity is selected. */
body.ch-theme.ch-theme-bm-profile-cosmetic:has(.ch-theme-brand-frame--glow)
:is(
  .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
  .ch-theme-mode-toggle,
  .ch-theme-account-toggle
){
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.50),
    0 0 12px rgba(var(--ch-profile-frame-rgb),.27),
    0 0 22px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent)!important;
}

/* Cosmic gets the same breathing identity as the approved logo Glow frame,
   but slightly restrained because these controls are smaller. */
@keyframes chHeaderCosmeticCosmicGlow{
  0%,100%{
    border-color:rgba(124,58,237,.52);
    box-shadow:
      0 0 0 1px rgba(124,58,237,.25),
      0 0 9px rgba(124,58,237,.21),
      0 0 15px rgba(56,189,248,.10);
  }
  50%{
    border-color:rgba(56,189,248,.60);
    box-shadow:
      0 0 0 1px rgba(56,189,248,.30),
      0 0 12px rgba(56,189,248,.28),
      0 0 20px rgba(124,58,237,.16);
  }
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-header-icon-button[data-ch-header-preview="messages"],
  .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
  .ch-theme-mode-toggle,
  .ch-theme-account-toggle
){
  animation:chHeaderCosmeticCosmicGlow 4.8s ease-in-out infinite;
}

/* Avatar dropdown itself becomes part of the equipped Profile identity when
   open. Its internal links/readability remain under the existing theme rules. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-account.is-open .ch-theme-account-panel{
  border-color:rgba(var(--ch-profile-frame-rgb),.54)!important;
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.26),
    0 0 17px rgba(var(--ch-profile-frame-rgb),.24),
    0 0 28px color-mix(in srgb,var(--ch-profile-frame-accent-2) 12%,transparent),
    var(--ch-theme-shadow)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.ch-theme-account.is-open .ch-theme-account-panel{
  border-color:rgba(124,58,237,.56)!important;
  box-shadow:
    0 0 0 1px rgba(124,58,237,.28),
    0 0 18px rgba(124,58,237,.26),
    0 0 30px rgba(56,189,248,.17),
    var(--ch-theme-shadow)!important;
}

/* ---------------------------------------------------------
   BETTER MESSAGES OPEN HEADER CONTROLS
   --------------------------------------------------------- */

/* Provider minimize/caret button should be a cosmetic control, not gray. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]{
  background:color-mix(in srgb,var(--ch-bm-profile-border) 14%,#fff)!important;
  background-image:none!important;
  border:1px solid color-mix(in srgb,var(--ch-bm-profile-border) 55%,transparent)!important;
  color:var(--ch-bm-profile-header-text)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    0 0 8px color-mix(in srgb,var(--ch-bm-profile-border) 22%,transparent)!important;
  filter:none!important;
  opacity:1!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]
:is(*,svg){
  color:var(--ch-bm-profile-header-text)!important;
  -webkit-text-fill-color:var(--ch-bm-profile-header-text)!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}

/* Cosmic minimize control gets the actual purple/cyan identity. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]{
  background:
    linear-gradient(135deg,rgba(124,58,237,.15),rgba(56,189,248,.10)),
    #fff!important;
  border-color:rgba(124,58,237,.44)!important;
  color:#4338ca!important;
  box-shadow:
    0 0 0 1px rgba(124,58,237,.12),
    0 0 9px rgba(56,189,248,.12)!important;
}

/* The recessed/darker tab already has the correct cosmetic shade. Make every
   possible nested label/text node white, matching its white selected icon. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.ch-bm-panel-visible
.tabs > div:not(.active):not([data-tab="bpbm-close"]),
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:not(.active):not([data-tab="bpbm-close"]){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list.ch-bm-panel-visible
.tabs > div:not(.active):not([data-tab="bpbm-close"])
:is(*,a,span,strong,i,em,small),
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:not(.active):not([data-tab="bpbm-close"])
:is(*,a,span,strong,i,em,small){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* If BM uses current/selected instead of active on a particular build, its
   dark cosmetic tab should still get white label text. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:is(.selected,.current):not([data-tab="bpbm-close"]){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > div:is(.selected,.current):not([data-tab="bpbm-close"]) *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  :is(
    .ch-theme-header-icon-button[data-ch-header-preview="messages"],
    .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
    .ch-theme-mode-toggle,
    .ch-theme-account-toggle
  ){
    animation:none!important;
  }
}

/* =========================================================
   v0.4.130 — Header Cart + main-menu Profile cosmetic identity
   + exact BM minimize/caret authority.
   ========================================================= */

/* CART joins Messages, Notifications, Mode and Avatar. */
body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-header-icon-button[data-ch-header-preview="shopping"]{
  border-color:rgba(var(--ch-profile-frame-rgb),.46)!important;
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.18),
    0 0 9px rgba(var(--ch-profile-frame-rgb),.16),
    0 5px 16px rgba(15,23,42,.07)!important;
  transition:
    border-color .16s ease,
    box-shadow .18s ease,
    background .16s ease,
    transform .12s ease!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.ch-theme-header-icon-button[data-ch-header-preview="shopping"]:is(:hover,:focus-visible){
  border-color:var(--ch-profile-frame-accent)!important;
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.42),
    0 0 13px rgba(var(--ch-profile-frame-rgb),.28),
    0 0 21px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent),
    0 6px 18px rgba(15,23,42,.08)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic:has(.ch-theme-brand-frame--glow)
.ch-theme-header-icon-button[data-ch-header-preview="shopping"]{
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.50),
    0 0 12px rgba(var(--ch-profile-frame-rgb),.27),
    0 0 22px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent)!important;
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.ch-theme-header-icon-button[data-ch-header-preview="shopping"]{
  animation:chHeaderCosmeticCosmicGlow 4.8s ease-in-out infinite;
}

/* ---------------------------------------------------------
   MAIN DESKTOP NAV — subtle Profile cosmetic text aura.
   It breathes slowly and becomes clearer on hover/current item.
   --------------------------------------------------------- */
@keyframes chProfileMenuTextGlow{
  0%,100%{
    text-shadow:
      0 0 3px rgba(var(--ch-profile-frame-rgb),.08),
      0 0 7px rgba(var(--ch-profile-frame-rgb),.05);
  }
  50%{
    text-shadow:
      0 0 4px rgba(var(--ch-profile-frame-rgb),.18),
      0 0 10px color-mix(in srgb,var(--ch-profile-frame-accent-2) 10%,transparent);
  }
}

@media(min-width:783px){
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list > li > a{
    text-shadow:
      0 0 3px rgba(var(--ch-profile-frame-rgb),.10),
      0 0 7px rgba(var(--ch-profile-frame-rgb),.06);
    transition:
      color .16s ease,
      text-shadow .18s ease,
      transform .14s ease!important;
    animation:chProfileMenuTextGlow 5.2s ease-in-out infinite;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list > li > a:is(:hover,:focus-visible),
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list > li.current-menu-item > a,
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list > li.current-menu-ancestor > a{
    color:var(--ch-profile-frame-accent)!important;
    text-shadow:
      0 0 5px rgba(var(--ch-profile-frame-rgb),.34),
      0 0 12px rgba(var(--ch-profile-frame-rgb),.22),
      0 0 18px color-mix(in srgb,var(--ch-profile-frame-accent-2) 16%,transparent)!important;
  }

  /* Cosmic gets a tiny cyan/violet shimmer without changing text position. */
  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list > li > a{
    text-shadow:
      0 0 4px rgba(124,58,237,.14),
      0 0 8px rgba(56,189,248,.08);
  }
}

/* ---------------------------------------------------------
   BM MINIMIZE CARET — exact real element + all nested icon paths.
   Inline authority is applied by bm-tab-state.js; this covers children and
   pseudo/embedded icon presentation the provider can still color separately.
   --------------------------------------------------------- */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]{
  background:var(--ch-bm-profile-header)!important;
  background-color:transparent!important;
  background-image:var(--ch-bm-profile-header)!important;
  border-color:var(--ch-bm-profile-border)!important;
  color:var(--ch-bm-profile-header-text)!important;
  -webkit-text-fill-color:var(--ch-bm-profile-header-text)!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]
:is(*,span,i,svg,path){
  color:var(--ch-bm-profile-header-text)!important;
  -webkit-text-fill-color:var(--ch-bm-profile-header-text)!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}

html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]::before,
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]::after{
  color:var(--ch-bm-profile-header-text)!important;
  -webkit-text-fill-color:var(--ch-bm-profile-header-text)!important;
  border-color:currentColor!important;
}

/* Cosmic caret should read as the same purple/cyan family as the header,
   never neutral gray. */
html[data-ch-theme-mode="light"]
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.bp-better-messages-list:is(.bm-opened,.bm-bubble-open)
.tabs > [data-tab="bpbm-close"]{
  background:
    linear-gradient(135deg,rgba(124,58,237,.18),rgba(56,189,248,.13)),
    #f8f7ff!important;
  border-color:rgba(124,58,237,.52)!important;
  color:#4338ca!important;
  -webkit-text-fill-color:#4338ca!important;
  box-shadow:
    0 0 0 1px rgba(124,58,237,.14),
    0 0 10px rgba(56,189,248,.15)!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  .ch-theme-header-icon-button[data-ch-header-preview="shopping"],
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list > li > a{
    animation:none!important;
  }
}

/* =========================================================
   v0.4.131 — Main-menu dropdown cosmetic identity + BM unread badge.
   Presentation-only follow-up to approved v0.4.130.
   ========================================================= */

/* ---------------------------------------------------------
   DESKTOP MAIN MENU DROPDOWNS
   Extend the same equipped Profile cosmetic identity into submenu shells
   and submenu text without sacrificing readability.
   --------------------------------------------------------- */
@media(min-width:783px){
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu{
    border-color:rgba(var(--ch-profile-frame-rgb),.42)!important;
    box-shadow:
      0 0 0 1px rgba(var(--ch-profile-frame-rgb),.16),
      0 0 16px rgba(var(--ch-profile-frame-rgb),.16),
      0 12px 30px rgba(15,23,42,.12)!important;
    overflow:hidden;
  }

  /* Light mode submenu gets a clean cosmetic wash. */
  html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu{
    background:
      linear-gradient(
        145deg,
        rgba(var(--ch-profile-frame-rgb),.065),
        transparent 44%
      ),
      #fff!important;
  }

  /* Dark mode submenu keeps the approved dark surface with cosmetic edge. */
  html[data-ch-theme-mode="dark"] body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu{
    background:
      linear-gradient(
        145deg,
        rgba(var(--ch-profile-frame-rgb),.075),
        transparent 46%
      ),
      var(--ch-theme-surface,#121c2b)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu a{
    text-shadow:
      0 0 3px rgba(var(--ch-profile-frame-rgb),.10),
      0 0 7px rgba(var(--ch-profile-frame-rgb),.055);
    transition:
      color .16s ease,
      background .16s ease,
      text-shadow .18s ease,
      transform .12s ease!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu a:is(:hover,:focus-visible),
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu li.current-menu-item > a,
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu li.current-menu-ancestor > a{
    color:var(--ch-profile-frame-accent)!important;
    background:rgba(var(--ch-profile-frame-rgb),.08)!important;
    text-shadow:
      0 0 5px rgba(var(--ch-profile-frame-rgb),.34),
      0 0 11px rgba(var(--ch-profile-frame-rgb),.20),
      0 0 17px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent)!important;
  }

  /* Cosmic submenu gets the same restrained purple/cyan atmosphere. */
  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu{
    border-color:rgba(124,58,237,.48)!important;
    box-shadow:
      0 0 0 1px rgba(124,58,237,.18),
      0 0 18px rgba(124,58,237,.17),
      0 0 28px rgba(56,189,248,.10),
      0 12px 30px rgba(15,23,42,.12)!important;
  }

  html[data-ch-theme-mode="light"] body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu{
    background:
      radial-gradient(circle at 10% 10%,rgba(56,189,248,.09),transparent 34%),
      radial-gradient(circle at 90% 5%,rgba(124,58,237,.10),transparent 38%),
      #fff!important;
  }
}

/* ---------------------------------------------------------
   BETTER MESSAGES UNREAD COUNT
   Provider uses .unread-count / .bm-tab-badge. Make it part of the equipped
   cosmetic in both light and dark mode instead of default gray/blue.
   --------------------------------------------------------- */
body.ch-theme.ch-theme-bm-profile-cosmetic{
  --ch-bm-unread-bg:
    linear-gradient(
      135deg,
      var(--ch-profile-frame-accent),
      var(--ch-profile-frame-accent-2)
    );
}

body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-messages-wrap.bp-better-messages-list
.tabs > div
:is(.unread-count,.bm-tab-badge),
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list
.tabs > div
:is(.unread-count,.bm-tab-badge),
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-messages-wrap
.bm-tab-icon-wrap > .bm-tab-badge,
body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-messages-wrap
.messages-tab-icon-stack > .unread-count{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:16px!important;
  width:auto!important;
  height:16px!important;
  line-height:16px!important;
  padding:0 4px!important;
  margin-inline-start:5px!important;
  border-radius:999px!important;
  background:var(--ch-bm-unread-bg)!important;
  background-color:transparent!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid rgba(255,255,255,.62)!important;
  box-shadow:
    0 0 0 1px rgba(var(--ch-profile-frame-rgb),.24),
    0 0 7px rgba(var(--ch-profile-frame-rgb),.30)!important;
  font-size:9px!important;
  font-weight:800!important;
  text-align:center!important;
  vertical-align:middle!important;
  opacity:1!important;
  filter:none!important;
}

/* Override Better Messages' dark-mode hard-coded unread background. */
html[data-ch-theme-mode="dark"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-messages-wrap.bp-better-messages-list
.tabs > div
:is(.unread-count,.bm-tab-badge),
html[data-ch-theme-mode="dark"] body.ch-theme.ch-theme-bm-profile-cosmetic
.bp-better-messages-list
.tabs > div
:is(.unread-count,.bm-tab-badge){
  background:var(--ch-bm-unread-bg)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(255,255,255,.55)!important;
}

/* Cosmic unread bubble gets unmistakable purple → cyan identity. */
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic{
  --ch-bm-unread-bg:linear-gradient(135deg,#7c3aed,#4f46e5 48%,#0ea5e9);
}

body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
.bp-messages-wrap
:is(.unread-count,.bm-tab-badge){
  box-shadow:
    0 0 0 1px rgba(124,58,237,.34),
    0 0 8px rgba(124,58,237,.34),
    0 0 12px rgba(56,189,248,.18)!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme.ch-theme-bm-profile-cosmetic
  .ch-theme-primary-menu--desktop .ch-theme-menu-list .sub-menu a{
    animation:none!important;
  }
}

/* =========================================================
   v0.4.134 — Mobile BM Seen/read-receipt modal stacking recovery.
   CommunityHub fullscreen shell is ~2147483500; BM's native modal container
   is ~10000001. Lift only the BM modal/status surfaces above the fullscreen
   shell during the mobile session.
   ========================================================= */

@media(max-width:782px){
  body.ch-theme.ch-bm-mobile-session
  #better-messages-modals-container{
    position:fixed!important;
    inset:0!important;
    z-index:2147483645!important;
    pointer-events:none;
  }

  body.ch-theme.ch-bm-mobile-session
  #better-messages-modals-container
  :is(.bm-modal-window,.bm-message-status-panel){
    z-index:2147483646!important;
    pointer-events:auto;
  }

  body.ch-theme.ch-bm-mobile-session
  #better-messages-modals-container
  .bm-modal-window{
    position:fixed!important;
    inset:0!important;
  }

  body.ch-theme.ch-bm-mobile-session
  #better-messages-modals-container
  .bm-message-status-panel{
    position:relative!important;
    z-index:2147483647!important;
  }
}

/* =========================================================
   v0.4.136 — Better Messages Message Status modal spacing polish.
   Desktop + mobile. Functional click/stacking fixes remain untouched.
   ========================================================= */

/* Give the modal body more breathing room and keep the scrollbar away from
   status text such as Seen / Delivered. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel{
  padding:12px 14px 14px!important;
  box-sizing:border-box!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
:is(.bm-message-status-list,.bm-message-status-users,.bm-status-list){
  padding-right:12px!important;
  box-sizing:border-box!important;
}

/* Status rows: more vertical rhythm and a dedicated right-side status column. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
:is(
  .bm-message-status-list > div,
  .bm-message-status-users > div,
  .bm-status-list > div,
  .bm-message-status-user,
  .bm-status-user
){
  min-height:42px!important;
  padding:6px 10px 6px 4px!important;
  column-gap:10px!important;
  box-sizing:border-box!important;
}

/* Preserve room for the final status label so Delivered/Seen never clips into
   the scrollbar or edge of the modal. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
:is(
  .bm-message-status-list > div,
  .bm-message-status-users > div,
  .bm-status-list > div,
  .bm-message-status-user,
  .bm-status-user
)
:is(
  .status,
  .bm-status,
  .message-status,
  .bm-message-status,
  .seen-status,
  .delivery-status
){
  flex:0 0 auto!important;
  min-width:68px!important;
  margin-left:auto!important;
  padding-left:10px!important;
  padding-right:4px!important;
  text-align:right!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}

/* Name area may shrink, status area may not. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
:is(
  .bm-message-status-list > div,
  .bm-message-status-users > div,
  .bm-status-list > div,
  .bm-message-status-user,
  .bm-status-user
)
:is(
  .name,
  .user-name,
  .username,
  .bm-user-name,
  .bm-message-status-name
){
  min-width:0!important;
  flex:1 1 auto!important;
}

/* Add a little clearance between content and the native/custom scrollbar. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
:is(.simplebar-content,.simplebar-content-wrapper,.bm-scroll-content){
  padding-right:8px!important;
  box-sizing:border-box!important;
}

@media(max-width:782px){
  body.ch-theme.ch-bm-mobile-session
  #better-messages-modals-container
  .bm-message-status-panel{
    padding:12px 12px 16px!important;
  }

  body.ch-theme.ch-bm-mobile-session
  #better-messages-modals-container
  .bm-message-status-panel
  :is(
    .bm-message-status-list > div,
    .bm-message-status-users > div,
    .bm-status-list > div,
    .bm-message-status-user,
    .bm-status-user
  ){
    min-height:44px!important;
    padding-top:7px!important;
    padding-bottom:7px!important;
  }
}

/* =========================================================
   v0.4.137 — BM Message Status INNER list spacing correction.
   Exact Better Messages provider selectors:
   .bm-message-status-panel-users .bp-messages-user-list .user
   .bm-msg-status
   ========================================================= */

/* Undo v0.4.136 outer-modal padding. The modal shell should remain compact. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel{
  padding:0!important;
}

/* Preserve the provider's normal top separation above the list. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users{
  margin:10px 0 0!important;
}

/* Padding belongs INSIDE the actual scrolling list, not around the modal. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list{
  padding:8px 14px 8px 10px!important;
  box-sizing:border-box!important;
}

/* Each real provider row gets breathing room while retaining its flex layout. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  min-height:44px!important;
  padding:3px 10px 3px 0!important;
  box-sizing:border-box!important;
  gap:0!important;
}

/* Provider avatar already owns its internal 10px left/right padding. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic{
  flex:0 0 30px!important;
}

/* Let names consume available room without pushing status off-screen. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  flex:1 1 auto!important;
  min-width:0!important;
  padding-right:10px!important;
}

/* Exact Better Messages status class. Keep it safely inside the list and away
   from the scrollbar. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  flex:0 0 auto!important;
  min-width:72px!important;
  margin-left:auto!important;
  padding-left:10px!important;
  padding-right:12px!important;
  text-align:right!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  box-sizing:border-box!important;
}

/* A little more clearance on narrow screens because the scrollbar consumes a
   larger proportion of the modal width. */
@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list{
    padding:8px 16px 8px 8px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .bm-msg-status{
    min-width:76px!important;
    padding-right:14px!important;
  }
}

/* =========================================================
   v0.4.138 — BM Message Status gap refinement.
   Tighten name → Seen/Delivered spacing without reintroducing scrollbar clip.
   ========================================================= */

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  padding-right:5px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  min-width:60px!important;
  padding-left:5px!important;
  padding-right:10px!important;
}

@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .bm-msg-status{
    min-width:64px!important;
    padding-left:5px!important;
    padding-right:12px!important;
  }
}

/* =========================================================
   v0.4.139 — Better Messages Message Status modal final polish.
   Exact provider structure:
   .bm-message-status-panel-users
   .bp-messages-user-list
   .user > .pic + .name + .bm-msg-status
   ========================================================= */

/* Give this specific modal a useful width without making it bulky. */
body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-status-panel)
.bm-modal-window-inner{
  width:390px!important;
  max-width:calc(100vw - 32px)!important;
  border-radius:12px!important;
  overflow:hidden!important;
}

/* Header feels intentional and proportionate to the list below. */
body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-status-panel)
.bm-modal-window-header{
  padding:16px 18px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-status-panel)
.bm-modal-window-content{
  min-width:0!important;
  padding:14px 16px 16px!important;
  box-sizing:border-box!important;
}

/* Remove legacy spacing overrides around the panel itself. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel{
  padding:0!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users{
  margin:0!important;
}

/* Scrolling list: padding belongs here. Reserve a real scrollbar gutter. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list{
  max-height:min(430px,62vh)!important;
  padding:6px 12px 6px 6px!important;
  box-sizing:border-box!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  border-radius:8px!important;
}

/* Actual provider row. Use grid so names/statuses stay visually organized,
   but keep the status close enough that the row does not feel hollow. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  display:grid!important;
  grid-template-columns:40px minmax(0,150px) minmax(62px,max-content)!important;
  align-items:center!important;
  justify-content:start!important;
  column-gap:9px!important;
  min-height:46px!important;
  width:100%!important;
  padding:4px 4px!important;
  box-sizing:border-box!important;
  border-radius:7px!important;
}

/* Very subtle row affordance; no harsh separators. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user:hover{
  background:rgba(var(--bm-text-color),.045)!important;
}

/* Neutralize provider padding that was making the row feel cramped/uneven. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user > :not(img){
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Avatar column. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic{
  width:34px!important;
  height:34px!important;
  padding:0!important;
  margin:0!important;
  box-sizing:border-box!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic img{
  width:34px!important;
  height:34px!important;
  border-radius:4px!important;
  object-fit:cover!important;
}

/* Name column: clean, readable, no giant flex gap. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  min-width:0!important;
  width:auto!important;
  padding:0!important;
  margin:0!important;
  font-size:13px!important;
  line-height:1.25!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Status column: compact and readable, safely inside scrollbar gutter. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  min-width:62px!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  justify-self:start!important;
  text-align:left!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  font-size:11px!important;
  line-height:1.2!important;
  font-style:italic!important;
  opacity:.78!important;
}

/* Scrollbar polish — scoped to this one list. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list{
  scrollbar-width:thin;
  scrollbar-color:rgba(var(--bm-text-color),.38) transparent;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list::-webkit-scrollbar{
  width:7px;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list::-webkit-scrollbar-track{
  background:transparent;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list::-webkit-scrollbar-thumb{
  background:rgba(var(--bm-text-color),.32);
  border-radius:999px;
}

/* Mobile: use nearly the full comfortable width while retaining side margins. */
@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-modal-window:has(.bm-message-status-panel)
  .bm-modal-window-inner{
    width:min(380px,calc(100vw - 24px))!important;
    max-width:calc(100vw - 24px)!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-modal-window:has(.bm-message-status-panel)
  .bm-modal-window-content{
    padding:12px 12px 14px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list{
    padding:5px 10px 5px 5px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user{
    grid-template-columns:38px minmax(0,132px) minmax(60px,max-content)!important;
    column-gap:8px!important;
    min-height:45px!important;
    padding:4px 3px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .pic,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .pic img{
    width:32px!important;
    height:32px!important;
  }
}

/* =========================================================
   v0.4.140 — Better Messages Message Status modal tightening.
   Reduce dead space between name and Seen/Delivered.
   ========================================================= */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  min-height:44px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  flex:0 1 152px!important;
  max-width:152px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  flex:0 0 auto!important;
  min-width:0!important;
  margin-left:2px!important;
  text-align:left!important;
}

@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user{
    gap:8px!important;
    min-height:43px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .name{
    flex:0 1 138px!important;
    max-width:138px!important;
  }
}

/* =========================================================
   v0.4.141 — Better Messages Message Status compact container recovery.
   Resize the modal/list around its information instead of leaving dead space.
   Target: avatar + username + Seen/Delivered + scrollbar.
   ========================================================= */

/* Compact the entire Message Status modal around its content. */
body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-status-panel)
.bm-modal-window-inner{
  width:320px!important;
  max-width:calc(100vw - 24px)!important;
}

body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-status-panel)
.bm-modal-window-content{
  padding:12px 10px 12px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list{
  width:100%!important;
  max-width:none!important;
  padding:4px 8px 4px 4px!important;
  scrollbar-gutter:stable!important;
}

/* Keep the row compact: avatar, useful username width, status, scrollbar. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr) max-content!important;
  align-items:center!important;
  column-gap:7px!important;
  width:100%!important;
  min-height:42px!important;
  padding:3px 2px!important;
  box-sizing:border-box!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic,
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic img{
  width:32px!important;
  height:32px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  width:auto!important;
  min-width:0!important;
  margin:0 4px 0 0!important;
  padding:0!important;
  justify-self:end!important;
  text-align:right!important;
  white-space:nowrap!important;
}

/* Mobile is equally compact; only relax width if the viewport needs it. */
@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-modal-window:has(.bm-message-status-panel)
  .bm-modal-window-inner{
    width:min(314px,calc(100vw - 20px))!important;
    max-width:calc(100vw - 20px)!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-modal-window:has(.bm-message-status-panel)
  .bm-modal-window-content{
    padding:10px 8px 11px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list{
    padding:4px 7px 4px 3px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user{
    grid-template-columns:32px minmax(0,1fr) max-content!important;
    column-gap:6px!important;
    min-height:41px!important;
  }
}



/* =========================================================
   v0.4.142 — Better Messages Message Status name/status tightening.
   Tighten the relationship between username and Seen/Delivered while
   preserving the cleaned-up modal width and scrollbar gutter.
   ========================================================= */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  flex:0 1 136px!important;
  max-width:136px!important;
  min-width:0!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  flex:0 0 70px!important;
  min-width:70px!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  justify-self:auto!important;
}

@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user{
    gap:7px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .name{
    flex-basis:126px!important;
    max-width:126px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .bm-msg-status{
    flex-basis:66px!important;
    min-width:66px!important;
  }
}


/* =========================================================
   v0.4.143 — Better Messages Message Status hard 3-column layout.
   Force a compact readable row: avatar | name | Seen/Delivered.
   Pull status closer to the username while preserving the nice
   scrollbar gutter on the right.
   ========================================================= */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list{
  padding:4px 8px 4px 4px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  display:grid!important;
  grid-template-columns:34px minmax(0,148px) minmax(68px,max-content)!important;
  justify-content:start!important;
  align-items:center!important;
  column-gap:8px!important;
  row-gap:0!important;
  width:100%!important;
  min-height:42px!important;
  padding:4px 2px!important;
  box-sizing:border-box!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic,
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic img{
  width:32px!important;
  height:32px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  width:148px!important;
  min-width:0!important;
  max-width:148px!important;
  flex:none!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status,
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-status,
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .seen-status{
  width:68px!important;
  min-width:68px!important;
  max-width:68px!important;
  flex:none!important;
  margin:0!important;
  padding:0!important;
  justify-self:start!important;
  text-align:left!important;
  white-space:nowrap!important;
}

@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user{
    grid-template-columns:32px minmax(0,138px) minmax(64px,max-content)!important;
    column-gap:7px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .name{
    width:138px!important;
    max-width:138px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .bm-msg-status,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .bm-status,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .seen-status{
    width:64px!important;
    min-width:64px!important;
    max-width:64px!important;
  }
}

/* =========================================================
   v0.4.144 — BM reaction people popup compacting + status text parity.
   Exact provider structure inspected from Better Messages:
   .bm-message-reactions-panel .bp-messages-user-list .user
   with inline margin-left:auto on .bm-msg-status.
   ========================================================= */

/* ---------------------------------------------------------
   MESSAGE REACTIONS POPUP
   Make the whole modal fit the simple information it contains:
   avatar | username | reaction
   --------------------------------------------------------- */
body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-reactions-panel)
.bm-modal-window-inner{
  width:292px!important;
  max-width:calc(100vw - 24px)!important;
  border-radius:12px!important;
  overflow:hidden!important;
}

body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-reactions-panel)
.bm-modal-window-content{
  min-width:0!important;
  padding:10px 10px 12px!important;
  box-sizing:border-box!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel{
  margin:0!important;
  padding:0!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list{
  width:100%!important;
  max-height:min(400px,60vh)!important;
  padding:4px 8px 4px 4px!important;
  box-sizing:border-box!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
}

/* Provider injects margin-left:auto on the reaction status element.
   Override that exact behavior and keep the reaction beside the username. */
body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user{
  display:grid!important;
  grid-template-columns:34px minmax(0,150px) 24px!important;
  align-items:center!important;
  justify-content:start!important;
  column-gap:8px!important;
  width:100%!important;
  min-height:42px!important;
  padding:4px 2px!important;
  box-sizing:border-box!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .pic,
body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .pic img{
  width:32px!important;
  height:32px!important;
  padding:0!important;
  margin:0!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .name{
  min-width:0!important;
  max-width:150px!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .bm-msg-status{
  width:24px!important;
  min-width:24px!important;
  max-width:24px!important;
  margin:0!important;
  padding:0!important;
  justify-self:start!important;
  text-align:center!important;
  opacity:1!important;
}

/* Clean scrollbar, same compact treatment as status modal. */
body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list{
  scrollbar-width:thin;
  scrollbar-color:rgba(var(--bm-text-color),.34) transparent;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list::-webkit-scrollbar{
  width:7px;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list::-webkit-scrollbar-track{
  background:transparent;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list::-webkit-scrollbar-thumb{
  background:rgba(var(--bm-text-color),.30);
  border-radius:999px;
}

/* ---------------------------------------------------------
   MESSAGE STATUS — explicit dual-theme text parity.
   Seen / Delivered must be black in light mode and white in dark mode.
   --------------------------------------------------------- */
html[data-ch-theme-mode="light"]
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bp-messages-user-list .user .bm-msg-status{
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  opacity:1!important;
}

html[data-ch-theme-mode="dark"]
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bp-messages-user-list .user .bm-msg-status{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}

/* Fallback for themes where the explicit data attribute has not been painted
   onto <html> yet. Better Messages exposes text color variables correctly. */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bp-messages-user-list .user .bm-msg-status{
  font-weight:600!important;
}

@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-modal-window:has(.bm-message-reactions-panel)
  .bm-modal-window-inner{
    width:min(286px,calc(100vw - 20px))!important;
    max-width:calc(100vw - 20px)!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user{
    grid-template-columns:32px minmax(0,142px) 24px!important;
    column-gap:7px!important;
    min-height:41px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user .name{
    max-width:142px!important;
  }
}

/* =========================================================
   v0.4.145 — BM status/reaction popup content scale polish.
   Keep compact containers; increase information size/readability.
   ========================================================= */

/* ---------------------------------------------------------
   MESSAGE STATUS POPUP
   --------------------------------------------------------- */
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user{
  min-height:48px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic,
body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .pic img{
  width:36px!important;
  height:36px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .name{
  font-size:14px!important;
  line-height:1.3!important;
  font-weight:600!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-status-panel
.bm-message-status-panel-users
.bp-messages-user-list .user .bm-msg-status{
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:700!important;
}

/* ---------------------------------------------------------
   REACTION PEOPLE POPUP
   --------------------------------------------------------- */
body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user{
  min-height:48px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .pic,
body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .pic img{
  width:36px!important;
  height:36px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .name{
  font-size:14px!important;
  line-height:1.3!important;
  font-weight:600!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .bm-msg-status{
  font-size:18px!important;
  line-height:1!important;
  width:28px!important;
  min-width:28px!important;
  max-width:28px!important;
}

/* Slightly stronger modal titles to match enlarged content. */
body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-status-panel)
.bm-modal-window-header,
body.ch-theme
#better-messages-modals-container
.bm-modal-window:has(.bm-message-reactions-panel)
.bm-modal-window-header{
  font-size:15px!important;
  font-weight:700!important;
}

/* Mobile keeps the same readability increase without blowing out the compact
   popup widths. */
@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user{
    min-height:47px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .pic,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bm-message-status-panel-users
  .bp-messages-user-list .user .pic img,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user .pic,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user .pic img{
    width:34px!important;
    height:34px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bp-messages-user-list .user .name,
  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user .name{
    font-size:13.5px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-status-panel
  .bp-messages-user-list .user .bm-msg-status{
    font-size:11.5px!important;
  }

  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user .bm-msg-status{
    font-size:17px!important;
  }
}



/* =========================================================
   v0.4.146 — BM reaction popup actual emoji scale recovery.
   Better Messages hard-codes the popup emoji component to 13px.
   JS applies direct inline-important authority to the rendered emoji.
   ========================================================= */
body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user{
  grid-template-columns:36px minmax(0,148px) 30px!important;
  column-gap:8px!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .bm-msg-status{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  font-size:22px!important;
  line-height:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .bm-msg-status > *{
  font-size:22px!important;
  line-height:1!important;
}

body.ch-theme
#better-messages-modals-container
.bm-message-reactions-panel
.bp-messages-user-list .user .bm-msg-status
:is(img,svg){
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  min-height:22px!important;
  max-width:22px!important;
  max-height:22px!important;
}

@media(max-width:782px){
  body.ch-theme
  #better-messages-modals-container
  .bm-message-reactions-panel
  .bp-messages-user-list .user{
    grid-template-columns:34px minmax(0,140px) 30px!important;
  }
}

/* =========================================================
   v0.4.147 — Mobile Better Messages cosmetic parity.
   Scope: actual BM fullscreen mobile wrapper only.
   Preserve message bubbles, calls, reactions and provider behavior.
   ========================================================= */

@media(max-width:782px){

  /* -------------------------------------------------------
     MOBILE COSMETIC SURFACE TOKENS
     ------------------------------------------------------- */
  html[data-ch-theme-mode="light"]
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session{
    --ch-bm-mobile-surface:#ffffff;
    --ch-bm-mobile-soft:color-mix(in srgb,var(--ch-bm-profile-border) 7%,#fff);
    --ch-bm-mobile-edge:color-mix(in srgb,var(--ch-bm-profile-border) 72%,#dbe3ec);
    --ch-bm-mobile-text:#182230;
    --ch-bm-mobile-muted:#64748b;
  }

  html[data-ch-theme-mode="dark"]
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session{
    --ch-bm-mobile-surface:#0f1723;
    --ch-bm-mobile-soft:color-mix(in srgb,var(--ch-bm-profile-border) 10%,#111b29);
    --ch-bm-mobile-edge:color-mix(in srgb,var(--ch-bm-profile-border) 78%,#334155);
    --ch-bm-mobile-text:#f8fafc;
    --ch-bm-mobile-muted:#a8b4c4;
  }

  /* -------------------------------------------------------
     ACTUAL FULLSCREEN SHELL
     ------------------------------------------------------- */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  :is(
    #bp-better-messages-mobile-view-container,
    #bp-better-messages-mini-mobile-container,
    .bp-messages-wrap.bp-messages-mobile
  ){
    background:var(--ch-bm-mobile-surface)!important;
    color:var(--ch-bm-mobile-text)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  :is(
    #bp-better-messages-mobile-view-container,
    #bp-better-messages-mini-mobile-container
  ){
    box-shadow:
      inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 52%,transparent),
      inset 0 0 22px color-mix(in srgb,var(--ch-bm-profile-border) 12%,transparent)!important;
  }

  /* Very subtle cosmetic atmosphere behind provider-owned content. */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile{
    background:
      linear-gradient(
        180deg,
        color-mix(in srgb,var(--ch-bm-profile-border) 5%,var(--ch-bm-mobile-surface)) 0,
        var(--ch-bm-mobile-surface) 130px
      )!important;
  }

  /* -------------------------------------------------------
     MOBILE CONVERSATION / INDEX HEADER
     This should be the strongest cosmetic identity.
     ------------------------------------------------------- */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .chat-header{
    background:var(--ch-bm-profile-header)!important;
    background-image:var(--ch-bm-profile-header)!important;
    color:var(--ch-bm-profile-header-text)!important;
    border-bottom:1px solid var(--ch-bm-profile-border)!important;
    box-shadow:
      0 1px 0 color-mix(in srgb,var(--ch-bm-profile-border) 32%,transparent),
      0 4px 12px color-mix(in srgb,var(--ch-bm-profile-border) 22%,transparent),
      0 8px 24px color-mix(in srgb,var(--ch-bm-profile-border) 10%,transparent)!important;
    position:relative!important;
    z-index:3!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .chat-header
  :is(
    a,button,span,strong,i,
    .name,.name a,.title,.sub-name,.last-online,.group-online,
    .thread-info-data,.mobileClose,.settings,.expandingButtons,
    svg
  ){
    color:var(--ch-bm-profile-header-text)!important;
    -webkit-text-fill-color:var(--ch-bm-profile-header-text)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .chat-header svg{
    fill:currentColor!important;
    stroke:currentColor!important;
  }

  /* Provider hard-codes mobileClose to main BM color. */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .chat-header .mobileClose{
    color:var(--ch-bm-profile-header-text)!important;
    -webkit-text-fill-color:var(--ch-bm-profile-header-text)!important;
    text-shadow:
      0 0 7px color-mix(in srgb,var(--ch-bm-profile-border) 52%,transparent)!important;
  }

  /* -------------------------------------------------------
     THREAD LIST / SIDEBAR AREA
     ------------------------------------------------------- */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.threads-list,.bm-threads-list,.bm-combined-list){
    background:var(--ch-bm-mobile-surface)!important;
    color:var(--ch-bm-mobile-text)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.threads-list,.bm-threads-list,.bm-combined-list)
  .thread{
    border-bottom-color:color-mix(in srgb,var(--ch-bm-profile-border) 18%,transparent)!important;
    transition:background .16s ease,box-shadow .16s ease!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.threads-list,.bm-threads-list,.bm-combined-list)
  .thread:is(.active,.selected,:active){
    background:var(--ch-bm-mobile-soft)!important;
    box-shadow:
      inset 3px 0 0 var(--ch-bm-profile-border),
      inset 0 0 14px color-mix(in srgb,var(--ch-bm-profile-border) 8%,transparent)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.threads-list,.bm-threads-list,.bm-combined-list)
  .thread
  :is(.name,.name a,.subject,.bm-thread-title){
    color:var(--ch-bm-mobile-text)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.threads-list,.bm-threads-list,.bm-combined-list)
  .thread
  :is(.time,.last-message,.bm-last-message-content,.bm-sidebar-item-status){
    color:var(--ch-bm-mobile-muted)!important;
  }

  /* -------------------------------------------------------
     CONVERSATION BODY FRAME
     Do not alter individual message bubbles.
     ------------------------------------------------------- */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.bpbm-chat-content,.bpbm-chat-main,.bpbm-chat-main-primary,.bm-messages-list,.bm-list){
    background-color:var(--ch-bm-mobile-surface)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .bpbm-chat-main-primary{
    box-shadow:
      inset 1px 0 0 color-mix(in srgb,var(--ch-bm-profile-border) 18%,transparent),
      inset -1px 0 0 color-mix(in srgb,var(--ch-bm-profile-border) 18%,transparent)!important;
  }

  /* -------------------------------------------------------
     COMPOSER / REPLY AREA
     Cosmetic frame only; controls remain BM-owned.
     ------------------------------------------------------- */
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  :is(.bm-reply,.chat-footer){
    background:
      linear-gradient(
        180deg,
        color-mix(in srgb,var(--ch-bm-profile-border) 6%,var(--ch-bm-mobile-surface)),
        var(--ch-bm-mobile-surface) 58%
      )!important;
    border-top:1px solid color-mix(in srgb,var(--ch-bm-profile-border) 48%,transparent)!important;
    box-shadow:
      0 -1px 0 color-mix(in srgb,var(--ch-bm-profile-border) 16%,transparent),
      0 -8px 18px color-mix(in srgb,var(--ch-bm-profile-border) 8%,transparent)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .bm-reply .bm-editor{
    border-color:color-mix(in srgb,var(--ch-bm-profile-border) 54%,transparent)!important;
    box-shadow:
      inset 0 0 0 1px color-mix(in srgb,var(--ch-bm-profile-border) 14%,transparent),
      0 0 10px color-mix(in srgb,var(--ch-bm-profile-border) 8%,transparent)!important;
  }

  html[data-ch-theme-mode="light"]
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .bm-reply .bm-editor{
    background:#fff!important;
    color:#182230!important;
  }

  html[data-ch-theme-mode="dark"]
  body.ch-theme.ch-theme-bm-profile-cosmetic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .bm-reply .bm-editor{
    background:#111b29!important;
    color:#f8fafc!important;
  }

  /* -------------------------------------------------------
     COSMIC MOBILE SIGNATURE
     More visible than desktop, still restrained.
     ------------------------------------------------------- */
  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic.ch-bm-mobile-session
  .bp-messages-wrap.bp-messages-mobile
  .chat-header{
    background-image:
      radial-gradient(circle at 9% 24%,rgba(56,189,248,.82) 0 1px,transparent 1.8px),
      radial-gradient(circle at 29% 68%,rgba(124,58,237,.76) 0 1px,transparent 1.8px),
      radial-gradient(circle at 72% 22%,rgba(129,140,248,.76) 0 1px,transparent 1.8px),
      radial-gradient(circle at 91% 70%,rgba(56,189,248,.64) 0 1px,transparent 1.8px),
      var(--ch-bm-profile-header)!important;
    box-shadow:
      0 1px 0 rgba(124,58,237,.34),
      0 4px 13px rgba(124,58,237,.26),
      0 8px 26px rgba(56,189,248,.14)!important;
  }

  @keyframes chBmMobileCosmicEdge{
    0%,100%{
      box-shadow:
        inset 0 0 0 1px rgba(124,58,237,.28),
        inset 0 0 18px rgba(124,58,237,.08);
    }
    50%{
      box-shadow:
        inset 0 0 0 1px rgba(56,189,248,.34),
        inset 0 0 25px rgba(56,189,248,.11);
    }
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic.ch-bm-mobile-session
  :is(
    #bp-better-messages-mobile-view-container,
    #bp-better-messages-mini-mobile-container
  ){
    animation:chBmMobileCosmicEdge 4.8s ease-in-out infinite;
  }

  @media(prefers-reduced-motion:reduce){
    body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic.ch-bm-mobile-session
    :is(
      #bp-better-messages-mobile-view-container,
      #bp-better-messages-mini-mobile-container
    ){
      animation:none!important;
    }
  }
}

/* =========================================================
   v0.4.148 — Mobile Community/Profile cosmetic parity.
   Presentation only. Post cosmetic ownership remains Core-owned.
   Better Messages mobile checkpoint v0.4.147 is untouched.
   ========================================================= */

@media(max-width:782px){

  /* -------------------------------------------------------
     SHARED MOBILE COMMUNITY/PROFILE SURFACE PARITY
     ------------------------------------------------------- */
  body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic
  :is(
    .ch-profile-header-card,
    .ch-profile-about-card,
    .ch-profile-section-header,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header,
    .ch-members-header,
    .ch-member-directory-header,
    .ch-groups-page-header,
    .ch-notifications-header,
    .ch-saved-header,
    .ch-forums-page-header
  ){
    border-color:rgba(var(--ch-profile-frame-rgb),.50)!important;
    box-shadow:
      inset 3px 0 0 rgba(var(--ch-profile-frame-rgb),.42),
      inset 0 1px 0 color-mix(in srgb,var(--ch-profile-frame-accent-2) 10%,transparent),
      0 7px 18px rgba(15,23,42,.08),
      0 0 16px rgba(var(--ch-profile-frame-rgb),.11)!important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic
  :is(
    .ch-profile-header-card,
    .ch-profile-about-card,
    .ch-profile-section-header,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header,
    .ch-members-header,
    .ch-member-directory-header,
    .ch-groups-page-header,
    .ch-notifications-header,
    .ch-saved-header,
    .ch-forums-page-header
  ){
    box-shadow:
      inset 3px 0 0 rgba(var(--ch-profile-frame-rgb),.46),
      inset 0 1px 0 color-mix(in srgb,var(--ch-profile-frame-accent-2) 12%,transparent),
      0 8px 20px rgba(0,0,0,.24),
      0 0 19px rgba(var(--ch-profile-frame-rgb),.14)!important;
  }

  /* Mobile page/profile headers should read as the strongest CommunityHub
     identity surfaces beneath the main site header. */
  body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic
  :is(
    .ch-profile-header-card,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header
  ){
    border-width:1px!important;
    box-shadow:
      inset 3px 0 0 rgba(var(--ch-profile-frame-rgb),.54),
      inset 0 1px 0 color-mix(in srgb,var(--ch-profile-frame-accent-2) 16%,transparent),
      0 8px 22px rgba(15,23,42,.09),
      0 0 20px rgba(var(--ch-profile-frame-rgb),.16),
      0 0 30px color-mix(in srgb,var(--ch-profile-frame-accent-2) 10%,transparent)!important;
  }

  /* -------------------------------------------------------
     COSMIC MOBILE — visible stars + glow, not desktop-muted.
     ------------------------------------------------------- */
  body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-profile-header-card,
    .ch-profile-about-card,
    .ch-profile-section-header,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header
  )::after{
    background:
      radial-gradient(circle at 15% 19%,rgba(56,189,248,.76) 0 1.2px,transparent 2px),
      radial-gradient(circle at 76% 31%,rgba(167,139,250,.74) 0 1.2px,transparent 2px),
      radial-gradient(circle at 43% 76%,rgba(99,102,241,.66) 0 1.1px,transparent 1.9px),
      radial-gradient(circle at 91% 83%,rgba(125,211,252,.55) 0 1px,transparent 1.8px)!important;
    background-size:106px 106px,146px 146px,192px 192px,236px 236px!important;
    opacity:.68!important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-profile-header-card,
    .ch-profile-about-card,
    .ch-profile-section-header,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header
  ){
    border-color:rgba(139,92,246,.42)!important;
    box-shadow:
      inset 3px 0 0 rgba(139,92,246,.48),
      inset 0 1px 0 rgba(56,189,248,.12),
      0 8px 21px rgba(0,0,0,.27),
      0 0 22px rgba(56,189,248,.14),
      0 0 34px rgba(139,92,246,.11)!important;
  }

  html[data-ch-theme-mode="light"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-profile-header-card,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header
  ){
    box-shadow:
      inset 3px 0 0 rgba(124,58,237,.54),
      inset 0 1px 0 rgba(56,189,248,.14),
      0 8px 20px rgba(76,29,149,.08),
      0 0 24px rgba(56,189,248,.17),
      0 0 36px rgba(124,58,237,.12)!important;
  }

  /* Slow mobile Cosmic breathing aura. */
  @keyframes chMobileCommunityCosmicAura{
    0%,100%{
      filter:drop-shadow(0 0 0 rgba(124,58,237,0));
    }
    50%{
      filter:drop-shadow(0 0 5px rgba(56,189,248,.12));
    }
  }

  body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(.ch-profile-header-card,.ch-community-header,.ch-feed-header,.ch-community-feed-header){
    animation:chMobileCommunityCosmicAura 4.8s ease-in-out infinite;
  }

  /* -------------------------------------------------------
     POST COSMETICS — keep Core visuals, make them visible on small screens.
     Do NOT repaint posts with Profile cosmetic.
     ------------------------------------------------------- */
  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post{
    overflow:visible!important;
    isolation:isolate!important;
  }

  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-neon-circuit{
    filter:
      drop-shadow(0 0 5px rgba(56,189,248,.18))
      drop-shadow(0 0 8px rgba(124,58,237,.10))!important;
  }

  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-ember-edge{
    filter:drop-shadow(0 0 7px rgba(249,115,22,.18))!important;
  }

  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-liberty-standard{
    filter:
      drop-shadow(0 0 5px rgba(36,87,166,.15))
      drop-shadow(0 0 7px rgba(183,25,50,.10))!important;
  }

  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-midnight-pulse-post{
    filter:drop-shadow(0 0 7px rgba(200,168,75,.17))!important;
  }

  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
    filter:
      drop-shadow(0 0 6px rgba(56,189,248,.18))
      drop-shadow(0 0 9px rgba(124,58,237,.12))!important;
  }

  /* Mobile header quick actions keep the same cosmetic identity approved on
     desktop, with a little more visible aura at touch size. */
  body.ch-theme.ch-theme-bm-profile-cosmetic
  :is(
    .ch-theme-header-icon-button[data-ch-header-preview="messages"],
    .ch-theme-header-icon-button[data-ch-header-preview="shopping"],
    .ch-theme-header-icon-button[data-ch-theme-notification-trigger],
    .ch-theme-mode-toggle,
    .ch-theme-account-toggle
  ){
    box-shadow:
      0 0 0 1px rgba(var(--ch-profile-frame-rgb),.28),
      0 0 10px rgba(var(--ch-profile-frame-rgb),.20)!important;
  }

  @media(prefers-reduced-motion:reduce){
    body.ch-theme
    .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
    :is(.ch-profile-header-card,.ch-community-header,.ch-feed-header,.ch-community-feed-header){
      animation:none!important;
    }
  }
}

/* =========================================================
   v0.4.149 — Mobile hamburger Profile cosmetic identity.
   Match the approved header quick-action button family.
   ========================================================= */
@media(max-width:782px){

  body.ch-theme.ch-theme-bm-profile-cosmetic
  :is(
    .ch-theme-mobile-menu-toggle,
    .ch-theme-menu-toggle,
    .menu-toggle,
    button[aria-controls="primary-menu"],
    button[aria-controls="site-navigation"]
  ){
    border-color:rgba(var(--ch-profile-frame-rgb),.46)!important;
    box-shadow:
      0 0 0 1px rgba(var(--ch-profile-frame-rgb),.24),
      0 0 10px rgba(var(--ch-profile-frame-rgb),.20)!important;
    transition:
      border-color .16s ease,
      box-shadow .18s ease,
      background .16s ease,
      transform .12s ease!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic
  :is(
    .ch-theme-mobile-menu-toggle,
    .ch-theme-menu-toggle,
    .menu-toggle,
    button[aria-controls="primary-menu"],
    button[aria-controls="site-navigation"]
  ):is(:hover,:focus-visible,[aria-expanded="true"]){
    border-color:var(--ch-profile-frame-accent)!important;
    box-shadow:
      0 0 0 1px rgba(var(--ch-profile-frame-rgb),.42),
      0 0 13px rgba(var(--ch-profile-frame-rgb),.28),
      0 0 20px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent)!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic
  :is(
    .ch-theme-mobile-menu-toggle,
    .ch-theme-menu-toggle,
    .menu-toggle,
    button[aria-controls="primary-menu"],
    button[aria-controls="site-navigation"]
  )
  :is(span,i,svg,path){
    color:inherit!important;
    fill:currentColor!important;
    stroke:currentColor!important;
  }

  body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
  :is(
    .ch-theme-mobile-menu-toggle,
    .ch-theme-menu-toggle,
    .menu-toggle,
    button[aria-controls="primary-menu"],
    button[aria-controls="site-navigation"]
  ){
    animation:chHeaderCosmeticCosmicGlow 4.8s ease-in-out infinite;
  }

  @media(prefers-reduced-motion:reduce){
    body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic
    :is(
      .ch-theme-mobile-menu-toggle,
      .ch-theme-menu-toggle,
      .menu-toggle,
      button[aria-controls="primary-menu"],
      button[aria-controls="site-navigation"]
    ){
      animation:none!important;
    }
  }
}

/* =========================================================
   v0.4.151 — Navigation Skin zero-state recovery.
   No Navigation Skin equipped = no skin override at all.
   Default Theme navigation owns its normal presentation.
   Existing explicit Navigation Skin body states remain authoritative.
   ========================================================= */

/* =========================================================
   v0.4.152 — Mobile Profile Skin boundary parity.
   Profile Skin owns personal/interface shell identity only.
   It must not decorate member/group/forum/notification content cards.
   No Navigation, Better Messages, Post Skin or reaction behavior changes.
   ========================================================= */
@media(max-width:782px){
  /* Intentional no-op ownership checkpoint:
     content-object cards are absent from Profile Skin selectors above.
     Their default/component/Skin presentation remains authoritative. */
}



/* =========================================================
   v0.4.153 — Mobile Cosmic Profile Skin dark-mode intensity.
   Dark mode only. Light mode, Navigation, BM, reactions and
   other Skin identities are intentionally unchanged.
   ========================================================= */
@media(max-width:782px){

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-profile-header-card,
    .ch-profile-about-card,
    .ch-profile-section-header,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header
  ){
    border-color:rgba(139,92,246,.62)!important;
    box-shadow:
      inset 3px 0 0 rgba(139,92,246,.72),
      inset 0 1px 0 rgba(56,189,248,.24),
      0 8px 22px rgba(0,0,0,.31),
      0 0 26px rgba(56,189,248,.24),
      0 0 40px rgba(139,92,246,.20)!important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-profile-header-card,
    .ch-profile-about-card,
    .ch-profile-section-header,
    .ch-page-header,
    .ch-community-header,
    .ch-feed-header,
    .ch-community-feed-header
  )::after{
    background:
      radial-gradient(circle at 15% 19%,rgba(56,189,248,.92) 0 1.3px,transparent 2.1px),
      radial-gradient(circle at 76% 31%,rgba(167,139,250,.90) 0 1.3px,transparent 2.1px),
      radial-gradient(circle at 43% 76%,rgba(129,140,248,.82) 0 1.2px,transparent 2px),
      radial-gradient(circle at 91% 83%,rgba(125,211,252,.76) 0 1.1px,transparent 1.9px)!important;
    opacity:.84!important;
  }

  @keyframes chMobileCommunityCosmicAuraDark{
    0%,100%{
      filter:
        drop-shadow(0 0 2px rgba(124,58,237,.10))
        drop-shadow(0 0 2px rgba(56,189,248,.06));
    }
    50%{
      filter:
        drop-shadow(0 0 7px rgba(124,58,237,.24))
        drop-shadow(0 0 6px rgba(56,189,248,.20));
    }
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(.ch-profile-header-card,.ch-community-header,.ch-feed-header,.ch-community-feed-header){
    animation:chMobileCommunityCosmicAuraDark 4.8s ease-in-out infinite!important;
  }

  @media(prefers-reduced-motion:reduce){
    html[data-ch-theme-mode="dark"] body.ch-theme
    .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
    :is(.ch-profile-header-card,.ch-community-header,.ch-feed-header,.ch-community-feed-header){
      animation:none!important;
    }
  }
}


/* =========================================================
   v0.4.154 — Mobile Cosmic Post Skin dark-mode motion balance.
   Dark mobile Cosmic Post only:
   - quieter resting aura;
   - clearer animated purple/cyan breathing;
   - preserves Core chCosmicPost animation.
   ========================================================= */
@media(max-width:782px){

  @keyframes chMobileCosmicPostDarkAura{
    0%,100%{
      filter:
        drop-shadow(0 0 2px rgba(56,189,248,.07))
        drop-shadow(0 0 3px rgba(124,58,237,.06));
    }
    35%{
      filter:
        drop-shadow(0 0 5px rgba(124,58,237,.14))
        drop-shadow(0 0 4px rgba(56,189,248,.10));
    }
    68%{
      filter:
        drop-shadow(0 0 6px rgba(56,189,248,.16))
        drop-shadow(0 0 8px rgba(124,58,237,.13));
    }
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
    /* Resting state is intentionally subtler than v0.4.153. */
    filter:
      drop-shadow(0 0 2px rgba(56,189,248,.07))
      drop-shadow(0 0 3px rgba(124,58,237,.06))!important;

    /* Keep the Core Cosmic Post animation and add a separate Theme-owned
       dark-mobile aura animation that changes filter only. */
    animation:
      chCosmicPost 5s ease-in-out infinite,
      chMobileCosmicPostDarkAura 3.6s ease-in-out infinite!important;
  }

  @media(prefers-reduced-motion:reduce){
    html[data-ch-theme-mode="dark"] body.ch-theme
    .ch-theme-community-shell
    .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
      animation:none!important;
      filter:
        drop-shadow(0 0 3px rgba(56,189,248,.09))
        drop-shadow(0 0 4px rgba(124,58,237,.07))!important;
    }
  }
}


/* =========================================================
   v0.4.155 — Cosmic Community Post Skin: Galaxy Identity.
   Scope: Cosmic Post Skin only.
   Goal: unmistakable galaxy/interstellar identity without
   changing post layout, behavior, or neighboring Skin slots.
   ========================================================= */

/* Full-card galaxy identity — replaces the old "purple left stripe" feel. */
body.ch-theme
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
  position:relative!important;
  isolation:isolate!important;

  border:1px solid rgba(124,58,237,.58)!important;

  /* Low-opacity nebula clouds + star points. Content remains readable. */
  background-image:
    radial-gradient(circle at 11% 18%,rgba(56,189,248,.12) 0 1.2px,transparent 1.9px),
    radial-gradient(circle at 31% 72%,rgba(255,255,255,.14) 0 1px,transparent 1.7px),
    radial-gradient(circle at 73% 24%,rgba(192,132,252,.13) 0 1.2px,transparent 2px),
    radial-gradient(circle at 91% 64%,rgba(244,114,182,.10) 0 1px,transparent 1.8px),
    radial-gradient(ellipse at 18% 44%,rgba(56,189,248,.085),transparent 36%),
    radial-gradient(ellipse at 78% 38%,rgba(139,92,246,.10),transparent 40%),
    radial-gradient(ellipse at 54% 92%,rgba(217,70,239,.07),transparent 34%),
    linear-gradient(115deg,rgba(59,130,246,.035),rgba(124,58,237,.055) 38%,rgba(217,70,239,.035) 70%,rgba(56,189,248,.028))!important;

  background-size:
    118px 118px,
    164px 164px,
    146px 146px,
    186px 186px,
    145% 145%,
    150% 150%,
    155% 155%,
    220% 220%!important;

  background-position:
    0 0,
    27px 41px,
    71px 19px,
    39px 76px,
    0% 35%,
    100% 20%,
    55% 100%,
    0% 50%!important;

  box-shadow:
    inset 0 0 0 1px rgba(139,92,246,.14),
    inset 0 1px 0 rgba(125,211,252,.14),
    0 0 10px rgba(99,102,241,.10),
    0 0 18px rgba(56,189,248,.06)!important;

  animation:chCosmicPostGalaxy 8.5s ease-in-out infinite!important;
}

/* Dark mode gets the full intergalactic treatment, still controlled. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post,
body.ch-theme.ch-theme-dark
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
  border-color:rgba(139,92,246,.70)!important;

  background-image:
    radial-gradient(circle at 11% 18%,rgba(125,211,252,.46) 0 1.25px,transparent 2px),
    radial-gradient(circle at 31% 72%,rgba(248,250,252,.32) 0 1px,transparent 1.8px),
    radial-gradient(circle at 73% 24%,rgba(216,180,254,.38) 0 1.25px,transparent 2.1px),
    radial-gradient(circle at 91% 64%,rgba(244,114,182,.28) 0 1.05px,transparent 1.9px),
    radial-gradient(circle at 52% 12%,rgba(147,197,253,.25) 0 .8px,transparent 1.5px),
    radial-gradient(ellipse at 14% 48%,rgba(14,165,233,.15),transparent 34%),
    radial-gradient(ellipse at 76% 34%,rgba(124,58,237,.18),transparent 40%),
    radial-gradient(ellipse at 52% 92%,rgba(192,38,211,.12),transparent 36%),
    linear-gradient(118deg,rgba(15,23,42,.02),rgba(67,56,202,.095) 31%,rgba(126,34,206,.085) 54%,rgba(14,116,144,.07) 78%,rgba(15,23,42,.02))!important;

  background-size:
    118px 118px,
    164px 164px,
    146px 146px,
    186px 186px,
    137px 137px,
    150% 150%,
    155% 155%,
    160% 160%,
    230% 230%!important;

  box-shadow:
    inset 0 0 0 1px rgba(139,92,246,.24),
    inset 0 1px 0 rgba(125,211,252,.20),
    0 0 9px rgba(99,102,241,.13),
    0 0 18px rgba(56,189,248,.09),
    0 0 28px rgba(168,85,247,.07)!important;

  animation:chCosmicPostGalaxyDark 7.2s ease-in-out infinite!important;
}

/* Slow nebula drift + perimeter color travel. */
@keyframes chCosmicPostGalaxy{
  0%,100%{
    border-color:rgba(124,58,237,.56);
    background-position:
      0 0,27px 41px,71px 19px,39px 76px,
      0% 35%,100% 20%,55% 100%,0% 50%;
    box-shadow:
      inset 0 0 0 1px rgba(139,92,246,.14),
      inset 0 1px 0 rgba(125,211,252,.14),
      0 0 10px rgba(99,102,241,.10),
      0 0 18px rgba(56,189,248,.06);
  }
  42%{
    border-color:rgba(56,189,248,.62);
    background-position:
      9px 4px,20px 48px,78px 14px,34px 82px,
      18% 30%,82% 28%,48% 86%,52% 50%;
    box-shadow:
      inset 0 0 0 1px rgba(56,189,248,.18),
      inset 0 1px 0 rgba(196,181,253,.16),
      0 0 12px rgba(56,189,248,.12),
      0 0 21px rgba(139,92,246,.08);
  }
  72%{
    border-color:rgba(217,70,239,.48);
    background-position:
      14px 10px,15px 54px,84px 9px,29px 87px,
      31% 42%,71% 38%,40% 72%,100% 50%;
    box-shadow:
      inset 0 0 0 1px rgba(217,70,239,.12),
      inset 0 1px 0 rgba(125,211,252,.13),
      0 0 11px rgba(168,85,247,.10),
      0 0 20px rgba(56,189,248,.07);
  }
}

@keyframes chCosmicPostGalaxyDark{
  0%,100%{
    border-color:rgba(139,92,246,.66);
    background-position:
      0 0,27px 41px,71px 19px,39px 76px,55px 8px,
      0% 38%,100% 18%,54% 100%,0% 50%;
    box-shadow:
      inset 0 0 0 1px rgba(139,92,246,.22),
      inset 0 1px 0 rgba(125,211,252,.18),
      0 0 8px rgba(99,102,241,.12),
      0 0 17px rgba(56,189,248,.08),
      0 0 26px rgba(168,85,247,.06);
  }
  38%{
    border-color:rgba(56,189,248,.78);
    background-position:
      8px 4px,20px 48px,78px 14px,34px 82px,62px 15px,
      22% 30%,78% 30%,47% 84%,48% 50%;
    box-shadow:
      inset 0 0 0 1px rgba(56,189,248,.28),
      inset 0 1px 0 rgba(216,180,254,.22),
      0 0 10px rgba(56,189,248,.18),
      0 0 23px rgba(124,58,237,.13),
      0 0 34px rgba(217,70,239,.07);
  }
  68%{
    border-color:rgba(217,70,239,.64);
    background-position:
      14px 10px,15px 54px,84px 9px,29px 87px,68px 21px,
      36% 44%,64% 42%,38% 70%,100% 50%;
    box-shadow:
      inset 0 0 0 1px rgba(217,70,239,.22),
      inset 0 1px 0 rgba(125,211,252,.18),
      0 0 9px rgba(217,70,239,.15),
      0 0 22px rgba(56,189,248,.12),
      0 0 31px rgba(124,58,237,.08);
  }
}

/* Mobile: preserve the same identity, with slightly faster readable motion. */
@media(max-width:782px){
  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
    animation:chCosmicPostGalaxy 7.4s ease-in-out infinite!important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post,
  body.ch-theme.ch-theme-dark
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
    animation:chCosmicPostGalaxyDark 6.4s ease-in-out infinite!important;
  }
}

/* Accessibility: keep the galaxy look, remove movement. */
@media(prefers-reduced-motion:reduce){
  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
    animation:none!important;
  }
}


/* =========================================================
   v0.4.156 — Cosmic Post perimeter cleanup.
   Keep Cosmic identity on the outer post shell instead of
   painting a dense star field through the content interior.
   Comment surfaces remain independently owned.
   ========================================================= */

body.ch-theme
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
  /* Remove v0.4.155's interior galaxy wallpaper. */
  background-image:none!important;
  border-color:rgba(124,58,237,.56)!important;
  box-shadow:
    inset 0 0 0 1px rgba(139,92,246,.12),
    0 0 10px rgba(99,102,241,.10),
    0 0 18px rgba(56,189,248,.055)!important;
  animation:chCosmicPostShellBreathe 7.8s ease-in-out infinite!important;
}

/* Animated galaxy is now a perimeter layer only. */
body.ch-theme
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after{
  content:""!important;
  position:absolute!important;
  inset:-1px!important;
  border-radius:inherit!important;
  padding:1.5px!important;
  pointer-events:none!important;
  z-index:5!important;

  background:
    radial-gradient(circle at 8% 20%,rgba(186,230,253,.90) 0 1px,transparent 1.8px),
    radial-gradient(circle at 68% 4%,rgba(233,213,255,.82) 0 1px,transparent 1.8px),
    radial-gradient(circle at 96% 72%,rgba(249,168,212,.72) 0 1px,transparent 1.8px),
    conic-gradient(
      from 20deg,
      rgba(56,189,248,.92),
      rgba(99,102,241,.92) 24%,
      rgba(168,85,247,.92) 48%,
      rgba(217,70,239,.84) 68%,
      rgba(56,189,248,.92) 100%
    )!important;

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;

  opacity:.72!important;
  filter:
    drop-shadow(0 0 4px rgba(56,189,248,.16))
    drop-shadow(0 0 7px rgba(139,92,246,.14))!important;
  animation:chCosmicPostPerimeterDrift 6.8s linear infinite!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post,
body.ch-theme.ch-theme-dark
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
  background-image:none!important;
  border-color:rgba(139,92,246,.58)!important;
  box-shadow:
    inset 0 0 0 1px rgba(139,92,246,.15),
    0 0 9px rgba(99,102,241,.11),
    0 0 17px rgba(56,189,248,.07),
    0 0 25px rgba(168,85,247,.05)!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after,
body.ch-theme.ch-theme-dark
.ch-theme-community-shell
.ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after{
  opacity:.82!important;
  filter:
    drop-shadow(0 0 5px rgba(56,189,248,.21))
    drop-shadow(0 0 9px rgba(139,92,246,.18))
    drop-shadow(0 0 13px rgba(217,70,239,.08))!important;
}

@keyframes chCosmicPostShellBreathe{
  0%,100%{
    box-shadow:
      inset 0 0 0 1px rgba(139,92,246,.12),
      0 0 9px rgba(99,102,241,.09),
      0 0 16px rgba(56,189,248,.05);
  }
  50%{
    box-shadow:
      inset 0 0 0 1px rgba(56,189,248,.14),
      0 0 12px rgba(56,189,248,.10),
      0 0 23px rgba(139,92,246,.09);
  }
}

@keyframes chCosmicPostPerimeterDrift{
  0%{filter:hue-rotate(0deg) drop-shadow(0 0 4px rgba(56,189,248,.16)) drop-shadow(0 0 7px rgba(139,92,246,.14))}
  50%{filter:hue-rotate(18deg) drop-shadow(0 0 7px rgba(139,92,246,.20)) drop-shadow(0 0 10px rgba(56,189,248,.16))}
  100%{filter:hue-rotate(0deg) drop-shadow(0 0 4px rgba(56,189,248,.16)) drop-shadow(0 0 7px rgba(139,92,246,.14))}
}

@media(max-width:782px){
  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after{
    padding:1.25px!important;
    opacity:.78!important;
    animation-duration:6.2s!important;
  }

  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after,
  body.ch-theme.ch-theme-dark
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after{
    opacity:.86!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post,
  body.ch-theme
  .ch-theme-community-shell
  .ch-activity-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post::after{
    animation:none!important;
  }
}


/* =========================================================
   v0.4.157 — Restore bold Cosmic profile intensity in DARK mode only.
   Narrow rollback: keep v0.4.156 Post cleanup, but bring back a richer
   blue/violet/magenta identity on Profile-owned Cosmic surfaces.
   ========================================================= */

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
),
body.ch-theme.ch-theme-dark
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
){
  border-color:rgba(139,92,246,.54)!important;
  background:
    radial-gradient(circle at 15% 16%,rgba(56,189,248,.11),transparent 31%),
    radial-gradient(circle at 84% 8%,rgba(168,85,247,.15),transparent 35%),
    radial-gradient(circle at 52% 96%,rgba(217,70,239,.07),transparent 30%),
    linear-gradient(180deg,rgba(22,28,57,.10),rgba(13,18,41,.04)),
    var(--ch-theme-surface,#111827)!important;
  box-shadow:
    inset 3px 0 0 rgba(139,92,246,.52),
    inset 0 1px 0 rgba(125,211,252,.12),
    0 12px 30px rgba(0,0,0,.28),
    0 0 22px rgba(56,189,248,.14),
    0 0 34px rgba(139,92,246,.11),
    0 0 52px rgba(217,70,239,.05)!important;
  animation:chCosmicProfileDarkAuraRestore 7.2s ease-in-out infinite!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
)::after,
body.ch-theme.ch-theme-dark
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-theme-community-sidebar .ch-theme-widget,
  .ch-activity-card:not(.ch-cosmetic-slot-post),
  .ch-member-card,
  .ch-group-card,
  .ch-group-member-card,
  .ch-forum-card,
  .ch-forum-post-card,
  .ch-notification-item,
  .ch-profile-about-card,
  .ch-profile-header-card,
  .ch-page-header,
  .ch-community-feed-header,
  .ch-members-header,
  .ch-member-directory-header,
  .ch-groups-page-header,
  .ch-notifications-header,
  .ch-saved-header,
  .ch-forums-page-header,
  .ch-profile-section-header
)::after{
  background:
    radial-gradient(circle at 18% 22%,rgba(125,211,252,.64) 0 1.1px,transparent 1.9px),
    radial-gradient(circle at 72% 34%,rgba(196,181,253,.58) 0 1.1px,transparent 1.9px),
    radial-gradient(circle at 44% 78%,rgba(244,114,182,.42) 0 1.0px,transparent 1.8px)!important;
  background-size:112px 112px,152px 152px,188px 188px!important;
  opacity:.62!important;
  animation:chCosmicProfileDarkStarsRestore 8.8s ease-in-out infinite!important;
}

@keyframes chCosmicProfileDarkAuraRestore{
  0%,100%{
    box-shadow:
      inset 3px 0 0 rgba(139,92,246,.48),
      inset 0 1px 0 rgba(125,211,252,.10),
      0 11px 28px rgba(0,0,0,.28),
      0 0 18px rgba(56,189,248,.12),
      0 0 28px rgba(139,92,246,.10),
      0 0 42px rgba(217,70,239,.045);
  }
  50%{
    box-shadow:
      inset 3px 0 0 rgba(56,189,248,.54),
      inset 0 1px 0 rgba(196,181,253,.14),
      0 13px 32px rgba(0,0,0,.30),
      0 0 24px rgba(56,189,248,.16),
      0 0 38px rgba(139,92,246,.13),
      0 0 56px rgba(217,70,239,.06);
  }
}

@keyframes chCosmicProfileDarkStarsRestore{
  0%,100%{opacity:.58;filter:drop-shadow(0 0 2px rgba(125,211,252,.09)) drop-shadow(0 0 4px rgba(168,85,247,.07));}
  50%{opacity:.68;filter:drop-shadow(0 0 3px rgba(125,211,252,.12)) drop-shadow(0 0 5px rgba(168,85,247,.09));}
}

@media(prefers-reduced-motion:reduce){
  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-theme-community-sidebar .ch-theme-widget,
    .ch-activity-card:not(.ch-cosmetic-slot-post),
    .ch-member-card,
    .ch-group-card,
    .ch-group-member-card,
    .ch-forum-card,
    .ch-forum-post-card,
    .ch-notification-item,
    .ch-profile-about-card,
    .ch-profile-header-card,
    .ch-page-header,
    .ch-community-feed-header,
    .ch-members-header,
    .ch-member-directory-header,
    .ch-groups-page-header,
    .ch-notifications-header,
    .ch-saved-header,
    .ch-forums-page-header,
    .ch-profile-section-header
  ),
  html[data-ch-theme-mode="dark"] body.ch-theme
  .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
  :is(
    .ch-theme-community-sidebar .ch-theme-widget,
    .ch-activity-card:not(.ch-cosmetic-slot-post),
    .ch-member-card,
    .ch-group-card,
    .ch-group-member-card,
    .ch-forum-card,
    .ch-forum-post-card,
    .ch-notification-item,
    .ch-profile-about-card,
    .ch-profile-header-card,
    .ch-page-header,
    .ch-community-feed-header,
    .ch-members-header,
    .ch-member-directory-header,
    .ch-groups-page-header,
    .ch-notifications-header,
    .ch-saved-header,
    .ch-forums-page-header,
    .ch-profile-section-header
  )::after{
    animation:none!important;
  }
}


/* =========================================================
   v0.4.163 — Social Timeline Header control + Profile Skin alias parity.
   Scope:
   - make saved admin header/nav toggles target every live header alias;
   - bridge Profile Skin presentation onto live social/group/forum headers;
   - do not paint post/comment/member/group/forum content cards.
   ========================================================= */

/* Header visibility controls — support both historical and current aliases. */
body.ch-hide-timeline-header-community
:is(.ch-community-feed-header,.ch-community-header,.ch-feed-header){
  display:none!important;
}

body.ch-hide-timeline-header-members
:is(.ch-member-directory-hero,.ch-members-header,.ch-member-directory-header){
  display:none!important;
}

body.ch-hide-timeline-header-notifications
:is(.ch-notifications-header,.ch-notification-page-header){
  display:none!important;
}

body.ch-hide-timeline-header-saved
:is(.ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header){
  display:none!important;
}

/* Social-header navigation toggle — hide nav controls inside every header alias. */
body.ch-hide-social-timeline-nav
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header
)
:is(
  .ch-community-feed-nav,
  .ch-member-directory-nav,
  .ch-notifications-nav,
  .ch-bookmarks-nav-in-header,
  .ch-saved-nav,
  .ch-social-timeline-nav,
  .ch-hub-nav
){
  display:none!important;
}

/* Profile Skin header family. Only actual header shells are bridged here. */
.ch-theme-community-shell.ch-theme-profile-cosmetic
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,
  .ch-forums-page-header
){
  position:relative;
  isolation:isolate;
  overflow:hidden;
}

/* Midnight Gold */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-midnight-gold
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
){
  border-color:rgba(200,168,75,.44)!important;
  background:
    linear-gradient(145deg,rgba(200,168,75,.045),transparent 42%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:
    inset 3px 0 0 rgba(200,168,75,.56),
    0 8px 22px rgba(91,68,8,.08)!important;
}

/* Cosmic */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
){
  border-color:rgba(139,92,246,.44)!important;
  background:
    radial-gradient(circle at 14% 14%,rgba(56,189,248,.055),transparent 28%),
    radial-gradient(circle at 88% 4%,rgba(168,85,247,.065),transparent 30%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:
    inset 3px 0 0 rgba(139,92,246,.42),
    0 0 18px rgba(99,102,241,.08)!important;
}

.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
)::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 18% 22%,rgba(125,211,252,.48) 0 1px,transparent 1.7px),
    radial-gradient(circle at 72% 34%,rgba(196,181,253,.42) 0 1px,transparent 1.7px),
    radial-gradient(circle at 44% 78%,rgba(255,255,255,.36) 0 1px,transparent 1.7px);
  background-size:128px 128px,176px 176px,224px 224px;
  opacity:.42;
}

/* Aurora Veil */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-aurora-veil
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
){
  border-color:rgba(45,212,191,.40)!important;
  background:
    linear-gradient(125deg,rgba(16,185,129,.045),rgba(56,189,248,.055),rgba(139,92,246,.045)),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:
    inset 3px 0 0 rgba(56,189,248,.42),
    0 0 18px rgba(45,212,191,.07)!important;
}

/* Obsidian Crown */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-obsidian-crown
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
){
  border-color:rgba(113,128,150,.58)!important;
  background:
    linear-gradient(145deg,rgba(15,23,42,.08),rgba(71,85,105,.055)),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:
    inset 3px 0 0 rgba(137,149,164,.64),
    0 8px 22px rgba(15,23,42,.10)!important;
}

/* Solar Horizon */
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-solar-horizon
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
){
  border-color:rgba(251,146,60,.42)!important;
  background:
    radial-gradient(circle at 50% 115%,rgba(253,224,71,.075),rgba(249,115,22,.035) 34%,transparent 66%),
    var(--ch-theme-surface,#fff)!important;
  box-shadow:
    inset 3px 0 0 rgba(249,115,22,.46),
    0 0 18px rgba(249,115,22,.07)!important;
}

/* Dark Cosmic header visibility/readability remains bold, without touching cards. */
html[data-ch-theme-mode="dark"] body.ch-theme
.ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(
  .ch-community-feed-header,.ch-community-header,.ch-feed-header,
  .ch-member-directory-hero,.ch-members-header,.ch-member-directory-header,
  .ch-notifications-header,.ch-notification-page-header,
  .ch-bookmarks-header,.ch-saved-header,.ch-saved-posts-header,
  .ch-groups-page-header,.ch-forums-page-header
){
  border-color:rgba(139,92,246,.54)!important;
  box-shadow:
    inset 3px 0 0 rgba(139,92,246,.52),
    inset 0 1px 0 rgba(125,211,252,.12),
    0 12px 30px rgba(0,0,0,.28),
    0 0 22px rgba(56,189,248,.14),
    0 0 34px rgba(139,92,246,.11)!important;
}


/* =========================================================
   v0.4.164 — LIVE Spotlight presentation standard +
   Social Timeline Header runtime control recovery.
   ========================================================= */

/* ---------- Daily Spotlight / popup showcase standard ---------- */
@media(min-width:783px){
  body.ch-theme .ch-spotlight-modal-dialog{
    width:min(1040px,calc(100vw - 72px))!important;
    max-height:calc(100vh - 56px)!important;
    border-radius:28px!important;
  }
  body.ch-theme .ch-spotlight-modal-header{
    padding:22px 26px!important;
  }
  body.ch-theme .ch-spotlight-modal-kicker{
    font-size:12px!important;
  }
  body.ch-theme .ch-spotlight-modal-header h2{
    font-size:30px!important;
    line-height:1.12!important;
  }
  body.ch-theme .ch-spotlight-modal-body{
    padding:34px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-daily-spotlight{
    padding:36px 38px!important;
    min-height:300px!important;
    gap:22px!important;
    border-radius:24px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-joke-of-day .ch-daily-spotlight-kicker{
    font-size:15px!important;
    letter-spacing:.08em!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-joke-of-day-category{
    font-size:14px!important;
    padding:6px 11px!important;
    font-weight:650!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-joke-of-day-setup{
    font-size:32px!important;
    line-height:1.34!important;
    font-weight:550!important;
    letter-spacing:-.012em!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-joke-of-day-punchline{
    padding:20px 22px!important;
    font-size:27px!important;
    line-height:1.38!important;
    font-weight:550!important;
    border-radius:16px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-joke-of-day .ch-daily-spotlight-date{
    font-size:14px!important;
  }
}

/* ---------- Social Timeline Header controls ----------
   These intentionally sit at the END of theme.css with enough specificity to
   outrank historical mobile/header display:* !important checkpoint rules. */
html body.ch-theme.ch-hide-timeline-header-community
.ch-theme-community-shell .ch-community-feed-header,
html body.ch-theme.ch-hide-timeline-header-community
.ch-theme-community-shell .ch-community-header,
html body.ch-theme.ch-hide-timeline-header-community
.ch-theme-community-shell .ch-feed-header{
  display:none!important;
  visibility:hidden!important;
}
html body.ch-theme.ch-hide-timeline-header-members
.ch-theme-community-shell .ch-member-directory-hero,
html body.ch-theme.ch-hide-timeline-header-members
.ch-theme-community-shell .ch-members-header,
html body.ch-theme.ch-hide-timeline-header-members
.ch-theme-community-shell .ch-member-directory-header{
  display:none!important;
  visibility:hidden!important;
}
html body.ch-theme.ch-hide-timeline-header-notifications
.ch-theme-community-shell .ch-notifications-header,
html body.ch-theme.ch-hide-timeline-header-notifications
.ch-theme-community-shell .ch-notification-page-header{
  display:none!important;
  visibility:hidden!important;
}
html body.ch-theme.ch-hide-timeline-header-saved
.ch-theme-community-shell .ch-bookmarks-header,
html body.ch-theme.ch-hide-timeline-header-saved
.ch-theme-community-shell .ch-saved-header,
html body.ch-theme.ch-hide-timeline-header-saved
.ch-theme-community-shell .ch-saved-posts-header{
  display:none!important;
  visibility:hidden!important;
}

/* Hide only the four-page social timeline navigation family. Saved uses a
   different historical nav class/link class, so include both structures. */
html body.ch-theme.ch-hide-social-timeline-nav
.ch-theme-community-shell :is(
 .ch-community-feed-nav,
 .ch-member-directory-nav,
 .ch-notifications-nav,
 .ch-bookmarks-nav,
 .ch-bookmarks-nav-in-header,
 .ch-social-timeline-nav
){
  display:none!important;
  visibility:hidden!important;
}

/* ---------- Equipped Profile Skin parity on ACTUAL header shells ---------- */
html body.ch-theme .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-midnight-gold
:is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header,.ch-groups-page-header,.ch-forums-page-header){
  border-color:rgba(200,168,75,.48)!important;
  background:linear-gradient(145deg,rgba(200,168,75,.055),transparent 44%),var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(200,168,75,.60),0 8px 22px rgba(91,68,8,.09)!important;
}
html body.ch-theme .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header,.ch-groups-page-header,.ch-forums-page-header){
  position:relative!important;isolation:isolate!important;overflow:hidden!important;
  border-color:rgba(139,92,246,.52)!important;
  background:radial-gradient(circle at 14% 14%,rgba(56,189,248,.075),transparent 30%),radial-gradient(circle at 88% 4%,rgba(168,85,247,.09),transparent 32%),var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(139,92,246,.50),0 0 22px rgba(99,102,241,.10)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-cosmic
:is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header,.ch-groups-page-header,.ch-forums-page-header){
  border-color:rgba(139,92,246,.58)!important;
  background:radial-gradient(circle at 14% 14%,rgba(56,189,248,.12),transparent 31%),radial-gradient(circle at 88% 4%,rgba(168,85,247,.16),transparent 35%),radial-gradient(circle at 52% 96%,rgba(217,70,239,.07),transparent 30%),var(--ch-theme-surface,#111827)!important;
  box-shadow:inset 3px 0 0 rgba(139,92,246,.56),inset 0 1px 0 rgba(125,211,252,.12),0 0 25px rgba(56,189,248,.14),0 0 38px rgba(139,92,246,.12)!important;
}
html body.ch-theme .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-aurora-veil
:is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header,.ch-groups-page-header,.ch-forums-page-header){
  border-color:rgba(45,212,191,.44)!important;
  background:linear-gradient(125deg,rgba(16,185,129,.055),rgba(56,189,248,.065),rgba(139,92,246,.05)),var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(56,189,248,.48),0 0 20px rgba(45,212,191,.09)!important;
}
html body.ch-theme .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-obsidian-crown
:is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header,.ch-groups-page-header,.ch-forums-page-header){
  border-color:rgba(113,128,150,.62)!important;
  background:linear-gradient(145deg,rgba(15,23,42,.10),rgba(71,85,105,.065)),var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(137,149,164,.68),0 8px 24px rgba(15,23,42,.11)!important;
}
html body.ch-theme .ch-theme-community-shell.ch-theme-profile-cosmetic-effect-solar-horizon
:is(.ch-community-feed-header,.ch-member-directory-hero,.ch-notifications-header,.ch-bookmarks-header,.ch-groups-page-header,.ch-forums-page-header){
  border-color:rgba(251,146,60,.48)!important;
  background:radial-gradient(circle at 50% 115%,rgba(253,224,71,.09),rgba(249,115,22,.045) 36%,transparent 68%),var(--ch-theme-surface,#fff)!important;
  box-shadow:inset 3px 0 0 rgba(249,115,22,.52),0 0 20px rgba(249,115,22,.09)!important;
}


/*
 * v0.4.172 — Comment wrapper ownership root fix.
 * Live DOM inspection confirmed .ch-comment is a structural wrapper.
 * All older Theme surface groups have been stripped of .ch-comment ownership.
 * The actual readable surface remains .ch-comment-bubble.
 */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-comment,
body.ch-theme-mode-dark .ch-comment,
body.ch-theme-dark .ch-comment{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}



/* =========================================================
   v0.4.173 — Game widget live modal presentation.
   Uses the existing Spotlight shell but moves the actual game node
   instead of cloning it, preserving gameplay state and listeners.
   ========================================================= */
body.ch-theme .ch-spotlight-modal .ch-game-modal-live{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
body.ch-theme .ch-spotlight-modal .ch-rush.ch-game-modal-live{
  padding:22px!important;
  border-radius:18px!important;
}
body.ch-theme .ch-spotlight-modal .ch-rush.ch-game-modal-live .ch-rush-stage{
  height:min(56vh,520px)!important;
  min-height:360px!important;
}
body.ch-theme .ch-spotlight-modal .ch-prize-drop.ch-game-modal-live{
  width:100%!important;
  max-width:980px!important;
  margin:0 auto!important;
}
body.ch-theme .ch-spotlight-modal .ch-prize-drop.ch-game-modal-live .ch-prize-drop-board{
  min-height:480px!important;
}
body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live) .ch-spotlight-modal-dialog{
  width:min(1120px,calc(100vw - 48px))!important;
  max-width:1120px!important;
  max-height:calc(100vh - 36px)!important;
}
body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live) .ch-spotlight-modal-body{
  padding:18px!important;
  overflow:auto!important;
}
body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live) .ch-spotlight-modal-kicker{
  color:#c8a84b!important;
}
@media(max-width:782px){
  body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live){
    padding:8px!important;
  }
  body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live) .ch-spotlight-modal-dialog{
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    height:calc(100dvh - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
    border-radius:16px!important;
  }
  body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live) .ch-spotlight-modal-header{
    padding:12px 14px!important;
  }
  body.ch-theme .ch-spotlight-modal:has(.ch-game-modal-live) .ch-spotlight-modal-body{
    padding:10px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-rush.ch-game-modal-live{
    padding:12px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-rush.ch-game-modal-live .ch-rush-stage{
    height:46dvh!important;
    min-height:300px!important;
  }
  body.ch-theme .ch-spotlight-modal .ch-prize-drop.ch-game-modal-live .ch-prize-drop-board{
    min-height:360px!important;
  }
}

/* =========================================================
   v0.4.177 — Profile header card polish selector recovery.
   Theme-only presentation pass: compact segmented stats and
   unified profile actions. Core/provider behavior is unchanged.
   ========================================================= */
body.ch-theme .ch-profile-card .ch-profile-main{
  grid-template-columns:auto minmax(0,1fr) minmax(220px,240px)!important;
  gap:20px!important;
  align-items:center!important;
  padding:0 24px 24px!important;
}
body.ch-theme .ch-profile-card .ch-profile-info{
  padding-top:16px!important;
}
body.ch-theme .ch-profile-card .ch-profile-stats{
  display:inline-flex!important;
  align-items:stretch!important;
  flex-wrap:nowrap!important;
  gap:0!important;
  margin-top:14px!important;
  max-width:100%!important;
  overflow:hidden!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 86%,transparent)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--ch-theme-surface,#fff) 90%,var(--ch-theme-bg,#f4f7fb) 10%)!important;
  box-shadow:0 3px 12px rgba(15,23,42,.045)!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:2px!important;
  min-width:88px!important;
  min-height:52px!important;
  padding:8px 14px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat + .ch-profile-stat{
  border-left:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 82%,transparent)!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat:last-child{
  min-width:104px!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat strong{
  color:var(--ch-theme-text,#111827)!important;
  font-size:16px!important;
  font-weight:900!important;
  line-height:1.05!important;
  letter-spacing:-.015em!important;
  white-space:nowrap!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat span{
  color:var(--ch-theme-muted,#64748b)!important;
  font-size:10.5px!important;
  font-weight:750!important;
  line-height:1.1!important;
  letter-spacing:.01em!important;
}

/* One deliberate action group instead of differently shaped controls. */
body.ch-theme .ch-profile-card .ch-profile-actions--social{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:stretch!important;
  align-self:center!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  max-width:240px!important;
  padding-top:0!important;
}
body.ch-theme .ch-profile-card .ch-profile-social-controls,
body.ch-theme .ch-profile-card .ch-profile-friend-controls,
body.ch-theme .ch-profile-card .ch-profile-follow-controls,
body.ch-theme .ch-profile-card .ch-profile-safety-controls{
  display:contents!important;
}
body.ch-theme .ch-profile-card :is(.ch-profile-social-button,.ch-profile-action-button,.ch-profile-report-quiet,.ch-profile-social-state){
  width:100%!important;
  min-width:0!important;
  min-height:38px!important;
  margin:0!important;
  padding:8px 11px!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:11px!important;
  font-size:11.5px!important;
  font-weight:850!important;
  line-height:1!important;
  box-shadow:none!important;
  transform:none!important;
  text-align:center!important;
}
body.ch-theme .ch-profile-card .ch-profile-message-button,
body.ch-theme .ch-profile-card .ch-profile-social-button.is-primary{
  border-color:var(--ch-theme-blue,#2563eb)!important;
  background:var(--ch-theme-blue,#2563eb)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--ch-theme-blue,#2563eb) 24%,transparent)!important;
}
body.ch-theme .ch-profile-card .ch-profile-message-button:hover,
body.ch-theme .ch-profile-card .ch-profile-message-button:focus-visible,
body.ch-theme .ch-profile-card .ch-profile-social-button.is-primary:hover,
body.ch-theme .ch-profile-card .ch-profile-social-button.is-primary:focus-visible{
  filter:brightness(.94)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body.ch-theme .ch-profile-card .ch-profile-social-button.is-secondary{
  background:color-mix(in srgb,var(--ch-theme-surface,#fff) 90%,var(--ch-theme-bg,#f4f7fb) 10%)!important;
  color:var(--ch-theme-text,#172033)!important;
  -webkit-text-fill-color:var(--ch-theme-text,#172033)!important;
}
body.ch-theme .ch-profile-card :is(.ch-profile-social-button.is-danger-quiet,.ch-profile-report-quiet){
  background:transparent!important;
  border-color:color-mix(in srgb,#dc2626 24%,var(--ch-theme-border,#dbe3ec))!important;
  color:#c2414b!important;
  -webkit-text-fill-color:#c2414b!important;
}
body.ch-theme .ch-profile-card :is(.ch-profile-social-button.is-danger-quiet,.ch-profile-report-quiet):hover,
body.ch-theme .ch-profile-card :is(.ch-profile-social-button.is-danger-quiet,.ch-profile-report-quiet):focus-visible{
  background:rgba(220,38,38,.07)!important;
  border-color:rgba(220,38,38,.34)!important;
  color:#b4232d!important;
  -webkit-text-fill-color:#b4232d!important;
  outline:none!important;
}
body.ch-theme .ch-profile-card .ch-profile-social-status{
  grid-column:1 / -1!important;
  margin:0!important;
  text-align:center!important;
}

/* Dark-mode parity. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card .ch-profile-stats,
body.ch-theme-mode-dark .ch-profile-card .ch-profile-stats,
body.ch-theme-dark .ch-profile-card .ch-profile-stats{
  border-color:rgba(148,163,184,.24)!important;
  background:rgba(255,255,255,.035)!important;
  box-shadow:0 3px 12px rgba(0,0,0,.12)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card .ch-profile-stat + .ch-profile-stat,
body.ch-theme-mode-dark .ch-profile-card .ch-profile-stat + .ch-profile-stat,
body.ch-theme-dark .ch-profile-card .ch-profile-stat + .ch-profile-stat{
  border-left-color:rgba(148,163,184,.22)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card .ch-profile-social-button.is-secondary,
body.ch-theme-mode-dark .ch-profile-card .ch-profile-social-button.is-secondary,
body.ch-theme-dark .ch-profile-card .ch-profile-social-button.is-secondary{
  border-color:rgba(148,163,184,.25)!important;
  background:rgba(255,255,255,.05)!important;
  color:#e7edf6!important;
  -webkit-text-fill-color:#e7edf6!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card :is(.ch-profile-social-button.is-danger-quiet,.ch-profile-report-quiet),
body.ch-theme-mode-dark .ch-profile-card :is(.ch-profile-social-button.is-danger-quiet,.ch-profile-report-quiet),
body.ch-theme-dark .ch-profile-card :is(.ch-profile-social-button.is-danger-quiet,.ch-profile-report-quiet){
  border-color:rgba(248,113,113,.22)!important;
  color:#fca5a5!important;
  -webkit-text-fill-color:#fca5a5!important;
}

@media(max-width:900px){
  body.ch-theme .ch-profile-card .ch-profile-main{
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
  }
  body.ch-theme .ch-profile-card .ch-profile-actions--social{
    grid-column:1 / -1!important;
    max-width:none!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}

@media(max-width:782px){
  body.ch-theme .ch-profile-card .ch-profile-main{
    grid-template-columns:1fr!important;
    gap:10px!important;
    padding:0 14px 16px!important;
  }
  body.ch-theme .ch-profile-card .ch-profile-avatar-wrap{
    justify-self:start!important;
  }
  body.ch-theme .ch-profile-card .ch-profile-stats{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
  }
  body.ch-theme .ch-profile-card .ch-profile-stat,
  body.ch-theme .ch-profile-card .ch-profile-stat:last-child{
    min-width:0!important;
    padding:8px 7px!important;
  }
  body.ch-theme .ch-profile-card .ch-profile-actions--social{
    grid-column:auto!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    max-width:none!important;
    padding-top:4px!important;
  }
}

/* =========================================================
   v0.4.178 — Profile stat alignment recovery.
   Narrow visual fix: equal three-column stat geometry and
   centered value/label alignment. No action/profile logic.
   ========================================================= */
body.ch-theme .ch-profile-card .ch-profile-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(92px,1fr))!important;
  align-items:stretch!important;
  width:min(100%,300px)!important;
  max-width:300px!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat,
body.ch-theme .ch-profile-card .ch-profile-stat:last-child{
  min-width:0!important;
  min-height:58px!important;
  padding:9px 10px!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat strong,
body.ch-theme .ch-profile-card .ch-profile-stat span{
  display:block!important;
  width:100%!important;
  margin:0!important;
  text-align:center!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat strong{
  min-height:18px!important;
  line-height:18px!important;
}
body.ch-theme .ch-profile-card .ch-profile-stat span{
  min-height:14px!important;
  line-height:14px!important;
}

@media(max-width:782px){
  body.ch-theme .ch-profile-card .ch-profile-stats{
    width:100%!important;
    max-width:none!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}


/* =========================================================
   v0.4.182 — Hooligan Rush rail-widget responsive ownership recovery.
   Theme owns widget presentation. The generic sidebar-button rule above is
   intentionally overridden inside Hooligan Rush so game choices do not all
   become oversized blue primary buttons. Compact behavior is based on the
   widget's own inline size, not the browser viewport.
   ========================================================= */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush{
  container-type:inline-size;
  container-name:ch-rush-widget;
  min-width:0;
  max-width:100%;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush *,
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush *::before,
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush *::after{
  box-sizing:border-box;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush--compact{
  width:100%;
  min-width:0;
  max-width:100%;
}

/* Toolbar: keep "Play Bigger" useful without letting it dominate the rail. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-game-widget-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-game-widget-toolbar>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-game-widget-expand{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:34px!important;
  height:34px!important;
  padding:0 13px!important;
  border-radius:11px!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:0 7px 16px rgba(0,128,255,.14)!important;
}

/* Choice controls are selectors, not primary CTA buttons. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush :is(
  button.ch-rush-character,
  button.ch-rush-duration,
  button.ch-rush-level
){
  width:100%!important;
  min-width:0!important;
  border:1px solid var(--rush-border)!important;
  background:rgba(127,127,127,.055)!important;
  color:var(--rush-text)!important;
  box-shadow:none!important;
  transform:none!important;
  text-shadow:none!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush :is(
  button.ch-rush-character,
  button.ch-rush-duration,
  button.ch-rush-level
):hover,
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush :is(
  button.ch-rush-character,
  button.ch-rush-duration,
  button.ch-rush-level
):focus-visible{
  border-color:var(--ch-theme-blue,#0080ff)!important;
  background:rgba(0,128,255,.09)!important;
  color:var(--rush-text)!important;
  box-shadow:0 0 0 3px rgba(0,128,255,.11)!important;
  transform:none!important;
  outline:none!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush :is(
  button.ch-rush-character,
  button.ch-rush-duration,
  button.ch-rush-level
).is-active{
  border-color:var(--ch-theme-blue,#0080ff)!important;
  background:rgba(0,128,255,.14)!important;
  color:var(--rush-text)!important;
  box-shadow:inset 0 0 0 1px rgba(0,128,255,.12)!important;
}

/* Character picker: let labels wrap instead of truncating useful names. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-characters{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(76px,1fr))!important;
  gap:6px!important;
  overflow:visible!important;
  padding:0!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-character{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  min-height:68px!important;
  height:auto!important;
  padding:6px 5px!important;
  border-radius:11px!important;
  white-space:normal!important;
  text-align:center!important;
  line-height:1.12!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-character-preview{
  width:34px!important;
  height:31px!important;
  min-height:31px!important;
  margin:0!important;
  overflow:visible!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-character strong{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  font-size:9px!important;
  line-height:1.15!important;
}

/* Run lengths are easier to scan as a balanced 2x2 grid in a rail. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-durations{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-duration{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:38px!important;
  height:38px!important;
  padding:0 7px!important;
  border-radius:10px!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}

/* Level choices: compact readable rows; no ellipsis hiding the useful detail. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-levels{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:6px!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-level{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  align-items:start!important;
  justify-items:start!important;
  gap:2px!important;
  min-height:0!important;
  height:auto!important;
  padding:8px 10px!important;
  border-radius:11px!important;
  text-align:left!important;
  white-space:normal!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-level strong{
  width:100%;
  margin:0!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  white-space:normal!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-level span{
  width:100%;
  color:var(--rush-muted)!important;
  font-size:9px!important;
  line-height:1.25!important;
  text-align:left!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}

/* Game stage and primary controls scale to the actual rail width. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-stage{
  width:100%;
  min-width:0;
  height:clamp(178px,68cqi,218px);
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-controls{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-play,
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-jump{
  width:100%!important;
  min-width:0!important;
  min-height:40px!important;
  height:40px!important;
  padding:0 10px!important;
  border-radius:11px!important;
  font-size:12px!important;
  line-height:1!important;
  white-space:normal!important;
  box-shadow:none!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-play{
  border:1px solid rgba(0,128,255,.34)!important;
  background:linear-gradient(180deg,#1490ff 0%,#0077ee 100%)!important;
  color:#fff!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-jump{
  border:1px solid var(--rush-border)!important;
  background:rgba(127,127,127,.07)!important;
  color:var(--rush-text)!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-jump:not(:disabled):hover,
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-jump:not(:disabled):focus-visible{
  border-color:var(--ch-theme-blue,#0080ff)!important;
  background:rgba(0,128,255,.10)!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush button.ch-rush-jump:disabled{
  opacity:.48!important;
  cursor:not-allowed!important;
}

/* Truly narrow containers get a deterministic reflow independent of viewport. */
@container ch-rush-widget (max-width: 285px){
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-hero{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-balance{
    width:100%!important;
    min-width:0!important;
    text-align:left!important;
  }
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-characters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-stage{
    height:190px;
  }
}
@container ch-rush-widget (max-width: 220px){
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-stats,
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-controls,
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-durations{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-characters{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Viewport fallback for browsers without container-query support. */
@supports not (container-type:inline-size){
  @media(max-width:430px){
    .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-hero{grid-template-columns:minmax(0,1fr)!important}
    .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-balance{width:100%!important;text-align:left!important}
    .ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush-characters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  }
}

/* =========================================================
   v0.4.182 — Hooligan Rush real-surface button ownership recovery.
   CommunityHub Theme has a global .ch-theme button treatment. Hooligan Rush
   owns its selector/control presentation, so explicitly restore game semantics
   on full-page, embedded, modal, and sidebar surfaces.
   ========================================================= */
body.ch-theme .ch-rush :is(.ch-rush-character,.ch-rush-duration,.ch-rush-level){
  appearance:none!important;
  border:1px solid var(--rush-border)!important;
  background:color-mix(in srgb,var(--rush-surface) 94%,var(--rush-text) 6%)!important;
  color:var(--rush-text)!important;
  box-shadow:none!important;
  transform:none!important;
  text-shadow:none!important;
}
body.ch-theme .ch-rush :is(.ch-rush-character,.ch-rush-duration,.ch-rush-level):hover,
body.ch-theme .ch-rush :is(.ch-rush-character,.ch-rush-duration,.ch-rush-level):focus-visible{
  border-color:color-mix(in srgb,var(--rush-accent) 75%,var(--rush-border))!important;
  background:color-mix(in srgb,var(--rush-accent) 10%,var(--rush-surface) 90%)!important;
  color:var(--rush-text)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--rush-accent) 18%,transparent)!important;
  outline:none!important;
}
body.ch-theme .ch-rush :is(.ch-rush-character,.ch-rush-duration,.ch-rush-level).is-active{
  border-color:var(--rush-accent)!important;
  background:color-mix(in srgb,var(--rush-accent) 16%,var(--rush-surface) 84%)!important;
  color:var(--rush-text)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rush-accent) 22%,transparent)!important;
}
body.ch-theme .ch-rush .ch-rush-character{
  min-height:94px!important;
  padding:10px 9px!important;
  border-radius:15px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  white-space:normal!important;
  text-align:center!important;
}
body.ch-theme .ch-rush .ch-rush-character-preview{
  width:58px!important;
  height:52px!important;
  margin:0 auto!important;
}
body.ch-theme .ch-rush .ch-rush-character strong{
  display:block!important;
  max-width:100%!important;
  font-size:11px!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body.ch-theme .ch-rush .ch-rush-duration{
  min-height:42px!important;
  height:42px!important;
  padding:0 10px!important;
  border-radius:12px!important;
  font-size:12px!important;
  font-weight:850!important;
}
body.ch-theme .ch-rush .ch-rush-level{
  min-height:0!important;
  height:auto!important;
  padding:10px 12px!important;
  border-radius:14px!important;
  text-align:left!important;
  white-space:normal!important;
}
body.ch-theme .ch-rush .ch-rush-level strong{font-size:13px!important;line-height:1.2!important}
body.ch-theme .ch-rush .ch-rush-level span{font-size:10.5px!important;line-height:1.3!important;color:var(--rush-muted)!important}
body.ch-theme .ch-rush .ch-rush-play{
  min-height:44px!important;
  height:44px!important;
  min-width:140px!important;
  padding:0 18px!important;
  border:1px solid rgba(0,128,255,.36)!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#1490ff 0%,#0078ee 100%)!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(0,128,255,.18)!important;
}
body.ch-theme .ch-rush .ch-rush-jump{
  min-height:44px!important;
  height:44px!important;
  min-width:110px!important;
  padding:0 16px!important;
  border:1px solid var(--rush-border)!important;
  border-radius:13px!important;
  background:color-mix(in srgb,var(--rush-surface) 90%,var(--rush-text) 10%)!important;
  color:var(--rush-text)!important;
  box-shadow:none!important;
}
body.ch-theme .ch-rush .ch-rush-jump:disabled{opacity:.46!important}
body.ch-theme .ch-rush .ch-rush-characters{min-width:0!important}
body.ch-theme .ch-rush .ch-rush-options{min-width:0!important}
body.ch-theme .ch-rush .ch-rush-levels{min-width:0!important}

@media(max-width:782px){
  body.ch-theme .ch-rush .ch-rush-characters{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible!important}
  body.ch-theme .ch-rush .ch-rush-character{width:100%!important;min-width:0!important;min-height:82px!important;padding:8px 6px!important}
  body.ch-theme .ch-rush .ch-rush-character-preview{width:48px!important;height:44px!important}
  body.ch-theme .ch-rush .ch-rush-durations{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ch-theme .ch-rush .ch-rush-levels{grid-template-columns:minmax(0,1fr)!important}
  body.ch-theme .ch-rush .ch-rush-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ch-theme .ch-rush .ch-rush-play,
  body.ch-theme .ch-rush .ch-rush-jump{width:100%!important;min-width:0!important}
}
@media(max-width:430px){
  body.ch-theme .ch-rush .ch-rush-characters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* =========================================================
   v0.4.183 — Hooligan Rush visual character-card selector.
   Uses the existing Core preview slot. Built-in characters receive readable
   miniature art; uploaded custom characters keep their actual image preview.
   Presentation only: no gameplay, persistence, reward, or input logic changes.
   ========================================================= */
body.ch-theme .ch-rush .ch-rush-characters{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  overflow:visible!important;
  padding:0!important;
}
body.ch-theme .ch-rush .ch-rush-character{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  min-height:132px!important;
  padding:10px 9px 11px!important;
  display:grid!important;
  grid-template-rows:minmax(78px,1fr) auto!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  gap:7px!important;
  border-radius:16px!important;
  overflow:hidden!important;
}
body.ch-theme .ch-rush .ch-rush-character-preview{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  height:78px!important;
  margin:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--rush-accent) 10%,transparent),transparent 53%),
    color-mix(in srgb,var(--rush-surface) 88%,var(--rush-text) 12%)!important;
  border:1px solid color-mix(in srgb,var(--rush-border) 78%,transparent)!important;
}
body.ch-theme .ch-rush .ch-rush-character.is-active .ch-rush-character-preview{
  border-color:color-mix(in srgb,var(--rush-accent) 76%,var(--rush-border))!important;
  box-shadow:inset 0 0 24px color-mix(in srgb,var(--rush-accent) 12%,transparent)!important;
}
body.ch-theme .ch-rush .ch-rush-character-preview img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  padding:4px!important;
}
body.ch-theme .ch-rush .ch-rush-character strong{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  margin:0!important;
  padding:0 3px!important;
  color:var(--rush-text)!important;
  font-size:13px!important;
  font-weight:850!important;
  line-height:1.18!important;
  letter-spacing:-.01em!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
}

/* Built-in selector miniatures. The Core markup already supplies these classes. */
body.ch-theme .ch-rush .ch-rush-character-mini{
  position:relative!important;
  display:block!important;
  width:62px!important;
  height:62px!important;
  flex:none!important;
}

/* Black & Grey Tabby — stylized cartoon cat head. */
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-cat{
  width:56px!important;
  height:50px!important;
  margin-top:7px!important;
  border:2px solid rgba(5,8,13,.92)!important;
  border-radius:48% 48% 45% 45%!important;
  background:
    linear-gradient(74deg,transparent 0 27%,rgba(20,25,33,.78) 28% 35%,transparent 36% 51%,rgba(20,25,33,.72) 52% 59%,transparent 60%),
    linear-gradient(145deg,#6e7784 0%,#424a55 47%,#242a31 100%)!important;
  box-shadow:0 8px 16px rgba(0,0,0,.24)!important;
}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-cat:before,
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-cat:after{
  content:""!important;
  position:absolute!important;
  top:-9px!important;
  width:18px!important;
  height:20px!important;
  background:#4f5864!important;
  border:2px solid rgba(5,8,13,.92)!important;
  z-index:-1!important;
}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-cat:before{
  left:2px!important;
  clip-path:polygon(0 100%,50% 0,100% 100%)!important;
}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-cat:after{
  right:2px!important;
  clip-path:polygon(0 100%,50% 0,100% 100%)!important;
}

/* Midnight Panther — readable black-panther head with gold eyes. */
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-panther{
  width:60px!important;
  height:48px!important;
  margin-top:9px!important;
  border:2px solid #030407!important;
  border-radius:49% 49% 44% 44%!important;
  background:
    radial-gradient(ellipse at 32% 45%,#e2bd38 0 5%,#372d08 6% 8%,transparent 9%),
    radial-gradient(ellipse at 68% 45%,#e2bd38 0 5%,#372d08 6% 8%,transparent 9%),
    radial-gradient(ellipse at 50% 70%,#0b0d12 0 6%,transparent 7%),
    linear-gradient(145deg,#2d3440 0%,#11151d 42%,#050609 100%)!important;
  box-shadow:0 10px 18px rgba(0,0,0,.34),inset 0 -8px 12px rgba(0,0,0,.32)!important;
}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-panther:before,
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-panther:after{
  content:""!important;
  position:absolute!important;
  top:-8px!important;
  width:20px!important;
  height:20px!important;
  background:#171c24!important;
  border:2px solid #030407!important;
  border-radius:4px 12px 3px 12px!important;
  z-index:-1!important;
}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-panther:before{left:2px!important;transform:rotate(18deg)!important}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-panther:after{right:2px!important;transform:scaleX(-1) rotate(18deg)!important}

/* Rocket Hooligan — compact rocket badge instead of a blank selector. */
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-rocket{
  display:grid!important;
  place-items:center!important;
  width:58px!important;
  height:58px!important;
  margin-top:2px!important;
  border-radius:50%!important;
  background:radial-gradient(circle at 48% 42%,#253a5c 0%,#132238 57%,#0b1421 100%)!important;
  border:1px solid rgba(87,151,231,.35)!important;
  box-shadow:0 8px 18px rgba(0,0,0,.24),inset 0 0 18px rgba(0,128,255,.12)!important;
}
body.ch-theme .ch-rush .ch-rush-character-mini.ch-rush-rocket:before{
  content:"🚀"!important;
  display:block!important;
  font-size:36px!important;
  line-height:1!important;
  transform:rotate(10deg)!important;
  filter:drop-shadow(0 4px 5px rgba(0,0,0,.25))!important;
}

body.ch-theme .ch-rush .ch-rush-character:hover .ch-rush-character-preview,
body.ch-theme .ch-rush .ch-rush-character:focus-visible .ch-rush-character-preview{
  transform:translateY(-1px)!important;
}

/* Compact rail widget gets a denser, still-visual version. */
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush--compact .ch-rush-characters{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush--compact .ch-rush-character{
  min-height:96px!important;
  padding:6px 5px 7px!important;
  grid-template-rows:56px auto!important;
  gap:4px!important;
  border-radius:12px!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush--compact .ch-rush-character-preview{
  height:56px!important;
  border-radius:9px!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush--compact .ch-rush-character-mini{
  transform:scale(.76)!important;
}
.ch-theme-sidebar :is(.ch-theme-widget,.widget) .ch-game-widget-shell--rush .ch-rush--compact .ch-rush-character strong{
  min-height:27px!important;
  padding:0 1px!important;
  font-size:9.8px!important;
  line-height:1.12!important;
}

@media(max-width:620px){
  body.ch-theme .ch-rush .ch-rush-characters{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  body.ch-theme .ch-rush .ch-rush-character{min-height:116px!important;grid-template-rows:68px auto!important;padding:8px 6px 9px!important}
  body.ch-theme .ch-rush .ch-rush-character-preview{height:68px!important}
  body.ch-theme .ch-rush .ch-rush-character strong{font-size:11.5px!important;min-height:31px!important}
}
@media(max-width:430px){
  body.ch-theme .ch-rush .ch-rush-characters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* =========================================================
   v0.4.184 — Hooligan Rush staged arcade flow presentation.
   Presentation only; Core owns run state, hit limit, rewards and Fullscreen API.
   ========================================================= */
body.ch-theme .ch-rush .ch-rush-screen{
  animation:chRushScreenIn .18s ease both;
}
@keyframes chRushScreenIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
body.ch-theme .ch-rush .ch-rush-screen-heading{
  padding:14px 16px!important;
  border:1px solid color-mix(in srgb,var(--rush-border) 88%,transparent)!important;
  border-radius:16px!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--rush-surface) 92%,transparent),color-mix(in srgb,var(--rush-accent) 7%,var(--rush-surface)))!important;
}
body.ch-theme .ch-rush .ch-rush-screen-heading>span{color:var(--rush-accent)!important}
body.ch-theme .ch-rush .ch-rush-flow-actions button,
body.ch-theme .ch-rush .ch-rush-view-actions button{
  min-height:42px!important;
  box-shadow:none!important;
  transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease!important;
}
body.ch-theme .ch-rush .ch-rush-flow-actions button:hover,
body.ch-theme .ch-rush .ch-rush-flow-actions button:focus-visible,
body.ch-theme .ch-rush .ch-rush-view-actions button:hover,
body.ch-theme .ch-rush .ch-rush-view-actions button:focus-visible{
  transform:translateY(-1px)!important;
  outline:none!important;
}
body.ch-theme .ch-rush .ch-rush-primary{
  background:linear-gradient(180deg,#f3d46b,#c8a84b)!important;
  color:#17130a!important;
  border-color:#e2c45d!important;
  box-shadow:0 8px 18px rgba(200,168,75,.16)!important;
}
body.ch-theme .ch-rush .ch-rush-secondary,
body.ch-theme .ch-rush .ch-rush-view-button{
  background:color-mix(in srgb,var(--rush-surface) 88%,var(--rush-text) 12%)!important;
  color:var(--rush-text)!important;
  border-color:var(--rush-border)!important;
}
body.ch-theme .ch-rush .ch-rush-game-toolbar{
  padding:10px 12px!important;
  border:1px solid var(--rush-border)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--rush-surface) 92%,transparent)!important;
}
body.ch-theme .ch-rush .ch-rush-game-toolbar strong{font-size:17px!important}
body.ch-theme .ch-rush .ch-rush-stage{
  min-height:0!important;
  height:clamp(240px,48cqi,420px)!important;
}
body.ch-theme .ch-rush .ch-rush-results-screen{
  min-height:0!important;
  display:grid;
  align-items:center;
}
body.ch-theme .ch-rush .ch-rush-result-card{
  background:
    radial-gradient(circle at 50% 0,color-mix(in srgb,var(--rush-accent) 10%,transparent),transparent 42%),
    color-mix(in srgb,var(--rush-surface) 94%,transparent)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.16)!important;
}
body.ch-theme .ch-rush .ch-rush-result-card h3{letter-spacing:-.025em!important}
body.ch-theme .ch-rush:fullscreen .ch-rush-flow,
body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-flow{
  max-width:1600px!important;
  margin-inline:auto!important;
}
body.ch-theme .ch-rush--compact .ch-rush-screen-heading{
  padding:9px 10px!important;
  margin-bottom:10px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-screen-heading h3{font-size:18px!important}
body.ch-theme .ch-rush--compact .ch-rush-screen-heading p{font-size:10.5px!important}
body.ch-theme .ch-rush--compact .ch-rush-flow-actions{margin-top:9px!important}
body.ch-theme .ch-rush--compact .ch-rush-flow-actions button{min-height:38px!important;padding:8px 10px!important;font-size:10.5px!important}
body.ch-theme .ch-rush--compact .ch-rush-game-toolbar{
  padding:8px 9px!important;
  margin-bottom:8px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-game-toolbar strong{font-size:12px!important}
body.ch-theme .ch-rush--compact .ch-rush-game-toolbar span{font-size:9px!important}
body.ch-theme .ch-rush--compact .ch-rush-view-actions{gap:5px!important}
body.ch-theme .ch-rush--compact .ch-rush-view-button{min-height:32px!important;padding:6px 7px!important;font-size:9.5px!important}
body.ch-theme .ch-rush--compact .ch-rush-stage{min-height:0!important;height:clamp(178px,68cqi,230px)!important}
body.ch-theme .ch-rush--compact .ch-rush-results-screen{min-height:330px!important}
body.ch-theme .ch-rush--compact .ch-rush-result-card{padding:15px!important}
body.ch-theme .ch-rush--compact .ch-rush-result-card h3{font-size:23px!important}
@media(max-width:782px){
  body.ch-theme .ch-rush .ch-rush-stage{min-height:300px!important}
}
@media(max-width:520px){
  body.ch-theme .ch-rush .ch-rush-stage{min-height:260px!important}
  body.ch-theme .ch-rush .ch-rush-result-stats{grid-template-columns:1fr!important}
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-rush .ch-rush-screen{animation:none!important}
  body.ch-theme .ch-rush .ch-rush-flow-actions button,
  body.ch-theme .ch-rush .ch-rush-view-actions button{transition:none!important}
}


/* =========================================================
   v0.4.185 — Hooligan Rush arcade-flow stability recovery.
   Keep setup screens visually stable, remove non-seamless scenery
   loops, and avoid whole-stage transform shakes during collisions.
   ========================================================= */
body.ch-theme .ch-rush .ch-rush-flow{
  min-width:0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"],
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  min-height:0!important;
  display:flex;
  flex-direction:column;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-flow-actions,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-flow-actions{
  margin-top:auto!important;
}
body.ch-theme .ch-rush--compact [data-rush-screen-panel="character"],
body.ch-theme .ch-rush--compact [data-rush-screen-panel="level"]{
  min-height:0!important;
}

/* Previous scenery motion used non-seamless background-position loops.
   Keep the selected level artwork stable until a seamless renderer replaces it. */
body.ch-theme .ch-rush.is-running .ch-rush-scenery-back,
body.ch-theme .ch-rush.is-running .ch-rush-scenery-front{
  animation:none!important;
  background-position:0 0!important;
}

/* Do not translate the entire game stage on a hit; that can visually look
   like the level itself jumped/reset. Use a short contained hit flash instead. */
body.ch-theme .ch-rush.is-bumped .ch-rush-stage{
  animation:none!important;
  transform:none!important;
  box-shadow:inset 0 0 0 2px rgba(239,68,68,.72), inset 0 0 26px rgba(239,68,68,.20)!important;
}

@media(max-width:700px){
  body.ch-theme .ch-rush [data-rush-screen-panel="character"],
  body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
    min-height:0!important;
  }
}
@media(max-width:430px){
  body.ch-theme .ch-rush [data-rush-screen-panel="character"],
  body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
    min-height:0!important;
  }
}


/* =========================================================
   v0.4.186 — Hooligan Rush pre-play view controls + explicit fail gate.
   Same interaction model for compact widget, embedded game and theater/fullscreen.
   ========================================================= */
body.ch-theme .ch-rush .ch-rush-preplay-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin:0 0 12px!important;
  padding:9px 11px!important;
  border:1px solid var(--rush-border)!important;
  border-radius:13px!important;
  background:color-mix(in srgb,var(--rush-surface) 94%,transparent)!important;
}
body.ch-theme .ch-rush .ch-rush-preplay-toolbar>span{
  color:var(--rush-muted)!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
body.ch-theme .ch-rush .ch-rush-preplay-toolbar .ch-rush-view-actions{
  display:flex!important;
  gap:7px!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
}
body.ch-theme .ch-rush .ch-rush-failed-screen{
  min-height:0!important;
  display:grid!important;
  place-items:center!important;
}
body.ch-theme .ch-rush .ch-rush-failed-card{
  appearance:none!important;
  width:min(100%,620px)!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  padding:28px!important;
  border:1px solid color-mix(in srgb,#ef4444 55%,var(--rush-border))!important;
  border-radius:20px!important;
  background:
    radial-gradient(circle at 50% 0,rgba(239,68,68,.16),transparent 44%),
    color-mix(in srgb,var(--rush-surface) 96%,transparent)!important;
  color:var(--rush-text)!important;
  text-align:center!important;
  cursor:pointer!important;
  box-shadow:0 20px 48px rgba(0,0,0,.18)!important;
}
body.ch-theme .ch-rush .ch-rush-failed-card:disabled{
  cursor:wait!important;
  opacity:.92!important;
}
body.ch-theme .ch-rush .ch-rush-failed-card:not(:disabled):hover,
body.ch-theme .ch-rush .ch-rush-failed-card:not(:disabled):focus-visible{
  transform:translateY(-2px)!important;
  border-color:#ef4444!important;
  outline:none!important;
}
body.ch-theme .ch-rush .ch-rush-failed-card h3{
  margin:0!important;
  font-size:clamp(25px,4vw,38px)!important;
  line-height:1.05!important;
}
body.ch-theme .ch-rush .ch-rush-failed-card p{
  margin:0!important;
  max-width:46ch!important;
  color:var(--rush-muted)!important;
}
body.ch-theme .ch-rush .ch-rush-failed-continue-label{
  margin-top:6px!important;
  padding:9px 14px!important;
  border-radius:999px!important;
  background:color-mix(in srgb,#ef4444 15%,var(--rush-surface))!important;
  color:var(--rush-text)!important;
  font-weight:850!important;
}
body.ch-theme .ch-rush--compact .ch-rush-preplay-toolbar{
  padding:7px 8px!important;
  margin-bottom:8px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-preplay-toolbar>span{font-size:9px!important}
body.ch-theme .ch-rush--compact .ch-rush-preplay-toolbar .ch-rush-view-button{
  min-height:30px!important;
  padding:5px 7px!important;
  font-size:9px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-screen{min-height:0!important}
body.ch-theme .ch-rush--compact .ch-rush-failed-card{
  min-height:0!important;
  padding:18px 12px!important;
}
@media(max-width:520px){
  body.ch-theme .ch-rush .ch-rush-preplay-toolbar{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
  body.ch-theme .ch-rush .ch-rush-preplay-toolbar .ch-rush-view-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.ch-theme .ch-rush .ch-rush-preplay-toolbar .ch-rush-view-button{width:100%!important}
  body.ch-theme .ch-rush .ch-rush-failed-card{padding:22px 14px!important}
}


/* =========================================================
   v0.4.187 — Hooligan Rush stable responsive decision stage.
   Character/Level setup use one predictable internal viewport in both
   widget and full presentation. Controls adapt to the game container,
   not merely the browser width.
   ========================================================= */
body.ch-theme .ch-rush{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  container-type:inline-size;
  container-name:ch-rush;
}
body.ch-theme .ch-rush .ch-rush-hero,
body.ch-theme .ch-rush .ch-rush-flow,
body.ch-theme .ch-rush .ch-rush-screen,
body.ch-theme .ch-rush .ch-rush-option-group,
body.ch-theme .ch-rush .ch-rush-levels,
body.ch-theme .ch-rush .ch-rush-durations,
body.ch-theme .ch-rush .ch-rush-flow-actions{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* One decision-stage geometry: heading stays high, choices stay centered,
   action buttons stay low. Switching Character <-> Level no longer moves
   the user's visual target around the card. */
body.ch-theme .ch-rush [data-rush-screen-panel="character"],
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  gap:14px!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-screen-heading,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-screen-heading{
  margin:0!important;
  align-self:start!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-option-group{
  align-self:center!important;
  width:100%!important;
  margin:0!important;
  overflow:auto!important;
  scrollbar-width:thin;
}
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  grid-template-rows:auto minmax(0,1fr) auto!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-levels{
  align-self:end!important;
  margin:0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-run-length{
  align-self:start!important;
  margin:10px 0 0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-flow-actions,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-flow-actions{
  align-self:end!important;
  margin:0!important;
  min-height:44px!important;
  align-items:stretch!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-flow-actions button,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-flow-actions button{
  min-height:44px!important;
}

/* Keep choice targets visually predictable and equal-sized. */
body.ch-theme .ch-rush .ch-rush-characters{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  overflow:visible!important;
  padding:0!important;
}
body.ch-theme .ch-rush .ch-rush-character{
  width:100%!important;
  min-width:0!important;
  min-height:132px!important;
  max-height:154px!important;
  grid-template-rows:minmax(78px,1fr) auto!important;
  align-content:center!important;
}
body.ch-theme .ch-rush .ch-rush-character-preview{
  width:100%!important;
  max-width:104px!important;
  height:82px!important;
  margin-inline:auto!important;
}
body.ch-theme .ch-rush .ch-rush-character strong{
  min-height:34px!important;
  display:grid!important;
  place-items:center!important;
  font-size:13px!important;
  line-height:1.2!important;
  text-align:center!important;
}
body.ch-theme .ch-rush .ch-rush-levels{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
}
body.ch-theme .ch-rush .ch-rush-level{
  min-height:76px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  text-align:left!important;
}
body.ch-theme .ch-rush .ch-rush-durations{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

/* Compact widget uses the same stage rhythm, only scaled down. */
body.ch-theme .ch-rush--compact [data-rush-screen-panel="character"],
body.ch-theme .ch-rush--compact [data-rush-screen-panel="level"]{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  gap:9px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-characters{
  gap:6px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-character{
  min-height:104px!important;
  max-height:114px!important;
  padding:7px 5px!important;
  grid-template-rows:64px auto!important;
}
body.ch-theme .ch-rush--compact .ch-rush-character-preview{
  height:62px!important;
  max-width:76px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-character strong{
  min-height:28px!important;
  font-size:10.5px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-level{
  min-height:52px!important;
}

/* Container-aware reflow. This matters when a narrow rail lives on a wide
   desktop and viewport media queries would otherwise choose the wrong layout. */
@container ch-rush (max-width:620px){
  body.ch-theme .ch-rush [data-rush-screen-panel="character"],
  body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
    height:460px!important;
    min-height:0!important;
    max-height:460px!important;
  }
  body.ch-theme .ch-rush .ch-rush-characters{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  body.ch-theme .ch-rush .ch-rush-character{
    min-height:112px!important;
    max-height:126px!important;
    grid-template-rows:66px auto!important;
  }
  body.ch-theme .ch-rush .ch-rush-character-preview{height:64px!important;max-width:80px!important}
  body.ch-theme .ch-rush .ch-rush-character strong{font-size:11px!important;min-height:30px!important}
  body.ch-theme .ch-rush .ch-rush-levels{grid-template-columns:1fr!important;gap:6px!important}
  body.ch-theme .ch-rush .ch-rush-level{min-height:48px!important;padding:7px 9px!important}
  body.ch-theme .ch-rush .ch-rush-level span{font-size:9.5px!important}
  body.ch-theme .ch-rush .ch-rush-durations{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-flow-actions,
  body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-flow-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-flow-actions{
    grid-template-columns:1fr!important;
  }
}
@container ch-rush (max-width:390px){
  body.ch-theme .ch-rush [data-rush-screen-panel="character"],
  body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  body.ch-theme .ch-rush .ch-rush-characters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ch-theme .ch-rush .ch-rush-character{min-height:98px!important;max-height:108px!important;grid-template-rows:58px auto!important}
  body.ch-theme .ch-rush .ch-rush-character-preview{height:56px!important;max-width:68px!important}
  body.ch-theme .ch-rush .ch-rush-level strong{font-size:11px!important}
  body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-flow-actions{grid-template-columns:1fr!important}
}

/* Full-screen/theater should keep the decision stage centered instead of
   stretching choices to the top of a huge viewport. */
body.ch-theme .ch-rush:fullscreen [data-rush-screen-panel="character"],
body.ch-theme .ch-rush:fullscreen [data-rush-screen-panel="level"],
body.ch-theme .ch-rush:-webkit-full-screen [data-rush-screen-panel="character"],
body.ch-theme .ch-rush:-webkit-full-screen [data-rush-screen-panel="level"]{
  width:min(100%,980px)!important;
  height:auto!important;
  min-height:0!important;
  margin-inline:auto!important;
}

/* Fallback for engines without container queries. */
@supports not (container-type:inline-size){
  @media(max-width:620px){
    body.ch-theme .ch-rush .ch-rush-levels{grid-template-columns:1fr!important}
    body.ch-theme .ch-rush .ch-rush-durations{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  }
}


/* =========================================================
   v0.4.188 — Hooligan Rush stable-stage recovery + comment menu containment.
   The previous 430–560px setup panel minimums created a giant empty card and
   moved the player's focus vertically between game states. Keep every state
   compact and centered inside one predictable stage while still adapting to
   the actual game container width.
   ========================================================= */
body.ch-theme .ch-rush .ch-rush-flow{
  display:block!important;
  min-height:0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"],
body.ch-theme .ch-rush [data-rush-screen-panel="level"],
body.ch-theme .ch-rush .ch-rush-failed-screen,
body.ch-theme .ch-rush .ch-rush-results-screen{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding:0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"],
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  display:grid!important;
  grid-template-rows:auto auto auto!important;
  align-content:center!important;
  gap:12px!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-screen-heading,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-screen-heading{
  margin:0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-option-group,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-levels,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-run-length{
  align-self:center!important;
  margin:0!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"] .ch-rush-flow-actions,
body.ch-theme .ch-rush [data-rush-screen-panel="level"] .ch-rush-flow-actions{
  align-self:center!important;
  margin:0!important;
  min-height:42px!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"]{
  padding-block:10px!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  padding-block:10px!important;
}
body.ch-theme .ch-rush .ch-rush-screen-heading{
  padding:10px 12px!important;
}
body.ch-theme .ch-rush .ch-rush-character{
  min-height:116px!important;
  max-height:none!important;
}
body.ch-theme .ch-rush .ch-rush-character-preview{
  height:68px!important;
  max-width:88px!important;
}
body.ch-theme .ch-rush .ch-rush-level{
  min-height:58px!important;
}
body.ch-theme .ch-rush .ch-rush-failed-screen,
body.ch-theme .ch-rush .ch-rush-results-screen{
  display:grid!important;
  place-items:center!important;
  padding-block:12px!important;
}
body.ch-theme .ch-rush .ch-rush-failed-card{
  min-height:0!important;
  padding:22px!important;
}
body.ch-theme .ch-rush .ch-rush-result-card{
  width:min(100%,620px)!important;
  padding:22px!important;
}
body.ch-theme .ch-rush--compact [data-rush-screen-panel="character"],
body.ch-theme .ch-rush--compact [data-rush-screen-panel="level"],
body.ch-theme .ch-rush--compact .ch-rush-failed-screen,
body.ch-theme .ch-rush--compact .ch-rush-results-screen{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}
body.ch-theme .ch-rush--compact [data-rush-screen-panel="character"],
body.ch-theme .ch-rush--compact [data-rush-screen-panel="level"]{
  padding-block:6px!important;
  gap:8px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-character{
  min-height:96px!important;
  max-height:none!important;
}
body.ch-theme .ch-rush--compact .ch-rush-character-preview{
  height:54px!important;
  max-width:70px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card,
body.ch-theme .ch-rush--compact .ch-rush-result-card{
  min-height:0!important;
  padding:14px!important;
}

@container ch-rush (max-width:620px){
  body.ch-theme .ch-rush [data-rush-screen-panel="character"],
  body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding-block:7px!important;
  }
  body.ch-theme .ch-rush .ch-rush-character{min-height:98px!important;max-height:none!important}
  body.ch-theme .ch-rush .ch-rush-character-preview{height:56px!important;max-width:72px!important}
}
@container ch-rush (max-width:390px){
  body.ch-theme .ch-rush [data-rush-screen-panel="character"],
  body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
}
body.ch-theme .ch-rush:fullscreen [data-rush-screen-panel="character"],
body.ch-theme .ch-rush:fullscreen [data-rush-screen-panel="level"],
body.ch-theme .ch-rush:-webkit-full-screen [data-rush-screen-panel="character"],
body.ch-theme .ch-rush:-webkit-full-screen [data-rush-screen-panel="level"]{
  width:min(100%,980px)!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:auto!important;
}

/* Comment options must open inward/upward so the menu cannot be clipped by
   the bottom/right edge of a Community post card. */
body.ch-theme .ch-comment-menu{
  overflow:visible!important;
}
body.ch-theme .ch-comment-menu-dropdown{
  top:auto!important;
  bottom:36px!important;
  right:0!important;
  left:auto!important;
  max-width:min(190px,calc(100vw - 24px))!important;
  z-index:2147482500!important;
}
body.ch-theme .ch-comment-head,
body.ch-theme .ch-comment-bubble,
body.ch-theme .ch-comment-main,
body.ch-theme .ch-comment,
body.ch-theme .ch-comment-thread,
body.ch-theme .ch-comments-list,
body.ch-theme .ch-comments-box,
body.ch-theme .ch-activity-comments{
  overflow:visible!important;
}


/* =========================================================
   v0.4.189 — Local Loops MVP official Theme presentation.
   Core remains functionally usable under a normal theme; the official Theme
   gives the vertical feed an app-like, container-responsive presentation.
   ========================================================= */
body.ch-theme .ch-community-loops-route-main,
body.ch-theme .ch-theme-community-shell--loops .ch-theme-community-content-wrap{
  width:100%!important;
  max-width:980px!important;
  margin-inline:auto!important;
  min-width:0!important;
}
body.ch-theme .ch-loops-app{
  --loop-card-max:520px;
  width:100%!important;
  max-width:920px!important;
}
body.ch-theme .ch-loops-header,
body.ch-theme .ch-loops-compose{
  background:var(--ch-theme-surface)!important;
  border-color:var(--ch-theme-border)!important;
  color:var(--ch-theme-text)!important;
  box-shadow:var(--ch-theme-shadow)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-loops-header,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-loops-compose,
body.ch-theme-mode-dark .ch-loops-header,
body.ch-theme-mode-dark .ch-loops-compose{
  background:var(--ch-theme-surface)!important;
  color:var(--ch-theme-text)!important;
}
body.ch-theme .ch-loops-feed{
  width:100%!important;
  display:grid!important;
  justify-items:center!important;
  gap:20px!important;
  scroll-snap-type:y proximity;
}
body.ch-theme .ch-loop-card{
  width:min(100%,var(--loop-card-max))!important;
  max-height:min(78vh,880px)!important;
  min-height:480px!important;
  border-color:color-mix(in srgb,var(--ch-theme-border) 78%,transparent)!important;
  box-shadow:0 22px 60px rgba(0,0,0,.26)!important;
}
body.ch-theme .ch-loop-actions a,
body.ch-theme .ch-loop-actions button,
body.ch-theme .ch-loop-sound{
  transition:transform .16s ease,background .16s ease,border-color .16s ease!important;
}
body.ch-theme .ch-loop-actions a:hover,
body.ch-theme .ch-loop-actions button:hover,
body.ch-theme .ch-loop-sound:hover{
  transform:translateY(-1px)!important;
  border-color:rgba(255,255,255,.55)!important;
  background:rgba(2,6,23,.74)!important;
}
body.ch-theme .ch-loops-create-toggle,
body.ch-theme .ch-loops-more,
body.ch-theme .ch-loops-compose .is-primary{
  background:linear-gradient(180deg,#1490ff,#0078ee)!important;
  color:#fff!important;
  border:1px solid rgba(0,128,255,.38)!important;
  box-shadow:0 8px 20px rgba(0,128,255,.18)!important;
}
@media(max-width:782px){
  body.ch-theme .ch-community-loops-route-main,
  body.ch-theme .ch-theme-community-shell--loops .ch-theme-community-content-wrap{max-width:100%!important}
  body.ch-theme .ch-loops-app{max-width:100%!important}
  body.ch-theme .ch-loop-card{width:min(100%,430px)!important;min-height:440px!important;max-height:76vh!important}
}
@media(max-width:520px){
  body.ch-theme .ch-loops-header{padding:14px!important;border-radius:15px!important}
  body.ch-theme .ch-loop-card{width:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:9/16!important;border-radius:16px!important}
}


/* v0.4.190 — structured source cards, quote readability, main-header search */
body.ch-theme .ch-source-card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;margin:4px 0 12px!important;border:1px solid var(--ch-theme-border)!important;border-radius:16px!important;background:var(--ch-theme-surface-soft)!important;color:var(--ch-theme-text)!important;overflow:hidden!important;text-decoration:none!important}
body.ch-theme .ch-source-card-media{display:block!important;aspect-ratio:16/8!important;overflow:hidden!important;background:var(--ch-theme-surface)!important}
body.ch-theme .ch-source-card-media img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
body.ch-theme .ch-source-card-body{display:grid!important;gap:5px!important;padding:14px 16px!important;color:var(--ch-theme-text)!important}
body.ch-theme .ch-source-card-body small{font-size:11px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:var(--ch-theme-text-muted)!important}
body.ch-theme .ch-source-card-body strong{font-size:16px!important;line-height:1.25!important;color:var(--ch-theme-text)!important}
body.ch-theme .ch-source-card-body span{font-size:13px!important;line-height:1.45!important;color:var(--ch-theme-text-muted)!important}
body.ch-theme .ch-source-card-body em{font-size:12px!important;font-style:normal!important;font-weight:900!important;color:var(--ch-theme-blue)!important}
body.ch-theme .ch-feed .ch-quote-text,body.ch-theme .ch-feed .ch-activity-card-repost .ch-quote-text{color:var(--ch-theme-text)!important;background:transparent!important}
body.ch-theme .ch-feed .ch-quote-text a{color:var(--ch-theme-blue)!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-feed .ch-quote-text,body.ch-theme.ch-theme-mode-dark .ch-feed .ch-quote-text{color:var(--ch-theme-text)!important}
html[data-ch-theme-mode="light"] body.ch-theme .ch-feed .ch-quote-text,body.ch-theme.ch-theme-mode-light .ch-feed .ch-quote-text{color:var(--ch-theme-text)!important}
body.ch-site-search-open{overflow:hidden!important}.ch-site-search-overlay[hidden]{display:none!important}.ch-site-search-overlay{position:fixed;inset:0;z-index:100000;display:grid;place-items:start center;padding:max(76px,calc(var(--wp-admin--admin-bar--height,0px) + 58px)) 16px 24px}.ch-site-search-backdrop{position:absolute;inset:0;border:0!important;background:rgba(2,8,23,.72)!important;backdrop-filter:blur(5px)}.ch-site-search-panel{position:relative;width:min(720px,100%);max-height:min(76vh,760px);display:flex;flex-direction:column;border:1px solid var(--ch-theme-border);border-radius:20px;background:var(--ch-theme-surface);box-shadow:0 24px 70px rgba(0,0,0,.35);overflow:hidden}.ch-site-search-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--ch-theme-border)}.ch-site-search-head input{width:100%;min-width:0;border:0!important;outline:0!important;background:transparent!important;color:var(--ch-theme-text)!important;font-size:16px!important;padding:9px 4px!important}.ch-site-search-head>button{width:36px;height:36px;border-radius:50%!important;border:1px solid var(--ch-theme-border)!important;background:var(--ch-theme-surface-soft)!important;color:var(--ch-theme-text)!important;font-size:22px!important;line-height:1!important}.ch-site-search-icon{font-size:22px;color:var(--ch-theme-text-muted)}.ch-site-search-status{padding:18px;color:var(--ch-theme-text-muted);font-size:13px}.ch-site-search-results{overflow:auto;padding:0 12px 14px}.ch-site-search-section{padding:10px 0}.ch-site-search-section h3{margin:0 0 7px!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.08em;color:var(--ch-theme-text-muted)!important}.ch-site-search-result{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:9px 10px;border-radius:12px;color:var(--ch-theme-text)!important;text-decoration:none!important}.ch-site-search-result:hover,.ch-site-search-result:focus-visible{background:var(--ch-theme-surface-soft)!important}.ch-site-search-result img,.ch-site-search-placeholder{width:42px;height:42px;border-radius:11px;object-fit:cover;background:var(--ch-theme-surface-soft);display:grid;place-items:center}.ch-site-search-result span:last-child{display:grid;gap:2px;min-width:0}.ch-site-search-result strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ch-theme-text)!important}.ch-site-search-result small{color:var(--ch-theme-text-muted)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-theme-header-quick-actions .ch-theme-header-icon-button[data-ch-site-search-trigger]{color:var(--ch-theme-text)!important}
@media(max-width:782px){.ch-site-search-overlay{padding:calc(58px + env(safe-area-inset-top)) 8px 8px;place-items:start stretch}.ch-site-search-panel{width:100%;max-height:calc(100dvh - 74px);border-radius:16px}.ch-site-search-head input{font-size:16px!important}.ch-source-card-body{padding:12px!important}}

/* Search joins the same Profile-Skin quick-action identity family as Cart. */
body.ch-theme.ch-theme-bm-profile-cosmetic .ch-theme-header-icon-button[data-ch-site-search-trigger]{
  border-color:rgba(var(--ch-profile-frame-rgb),.46)!important;
  box-shadow:0 0 0 1px rgba(var(--ch-profile-frame-rgb),.18),0 0 9px rgba(var(--ch-profile-frame-rgb),.16),0 5px 16px rgba(15,23,42,.07)!important;
}
body.ch-theme.ch-theme-bm-profile-cosmetic .ch-theme-header-icon-button[data-ch-site-search-trigger]:is(:hover,:focus-visible){
  border-color:var(--ch-profile-frame-accent)!important;
  box-shadow:0 0 0 1px rgba(var(--ch-profile-frame-rgb),.42),0 0 13px rgba(var(--ch-profile-frame-rgb),.28),0 0 21px color-mix(in srgb,var(--ch-profile-frame-accent-2) 14%,transparent),0 6px 18px rgba(15,23,42,.08)!important;
}
body.ch-theme.ch-theme-bm-profile-cosmetic-effect-cosmic .ch-theme-header-icon-button[data-ch-site-search-trigger]{animation:chHeaderCosmeticCosmicGlow 4.8s ease-in-out infinite}

/* =========================================================
   v0.4.191 — Hooligan Rush Prize-Drop footprint recovery,
   Local Loops visible empty state, and current visual guards.
   ========================================================= */

/* Hooligan Rush recovery — fluid container-owned layout.
   Screens stay in normal document flow so widget/page/fullscreen cannot clip
   setup controls or the bottom of the playfield. */
body.ch-theme .ch-rush{
  width:100%!important;
  max-width:760px!important;
  margin-inline:auto!important;
  border-radius:22px!important;
}
body.ch-theme .ch-rush .ch-rush-hero{margin-bottom:8px!important}
body.ch-theme .ch-rush .ch-rush-flow{
  position:relative!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  display:block!important;
}
body.ch-theme .ch-rush .ch-rush-preplay-toolbar{
  position:static!important;
  inset:auto!important;
  min-height:38px!important;
}
body.ch-theme .ch-rush .ch-rush-screen{
  position:static!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  margin:0!important;
  padding:10px!important;
  box-sizing:border-box!important;
}
body.ch-theme .ch-rush .ch-rush-screen[hidden]{display:none!important}
body.ch-theme .ch-rush [data-rush-screen-panel="character"],
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  display:grid!important;
  grid-template-rows:auto auto auto!important;
  align-items:stretch!important;
  align-content:start!important;
  gap:10px!important;
}
body.ch-theme .ch-rush .ch-rush-screen-heading{padding:8px 10px!important;margin:0!important}
body.ch-theme .ch-rush .ch-rush-screen-heading h3{font-size:18px!important;margin:2px 0!important}
body.ch-theme .ch-rush .ch-rush-screen-heading p{font-size:11px!important;line-height:1.35!important;margin:0!important}
body.ch-theme .ch-rush .ch-rush-option-group,
body.ch-theme .ch-rush .ch-rush-levels,
body.ch-theme .ch-rush .ch-rush-run-length{margin:0!important}
body.ch-theme .ch-rush .ch-rush-flow-actions{min-height:42px!important;margin:0!important}
body.ch-theme .ch-rush [data-rush-screen-panel="game"]{
  display:grid!important;
  grid-template-rows:auto auto auto auto auto auto!important;
  gap:7px!important;
  padding:8px!important;
}
body.ch-theme .ch-rush .ch-rush-game-toolbar,
body.ch-theme .ch-rush .ch-rush-stats,
body.ch-theme .ch-rush .ch-rush-controls,
body.ch-theme .ch-rush .ch-rush-reward-rule,
body.ch-theme .ch-rush .ch-rush-result{margin:0!important}
body.ch-theme .ch-rush .ch-rush-stage{
  width:100%!important;
  height:clamp(240px,48cqi,420px)!important;
  min-height:0!important;
  max-height:none!important;
  border-radius:14px!important;
}
body.ch-theme .ch-rush .ch-rush-failed-screen,
body.ch-theme .ch-rush .ch-rush-results-screen{display:grid!important;place-items:center!important}
body.ch-theme .ch-rush .ch-rush-failed-card,
body.ch-theme .ch-rush .ch-rush-result-card{width:min(100%,520px)!important;min-height:0!important;max-height:none!important;padding:18px!important}
body.ch-theme .ch-rush--compact{max-width:100%!important;border-radius:16px!important;padding:10px!important}
body.ch-theme .ch-rush--compact .ch-rush-flow{min-height:0!important;max-height:none!important}
body.ch-theme .ch-rush--compact .ch-rush-screen{height:auto!important;min-height:0!important;max-height:none!important;padding:6px!important}
body.ch-theme .ch-rush--compact .ch-rush-screen-heading{padding:6px 7px!important}
body.ch-theme .ch-rush--compact .ch-rush-screen-heading h3{font-size:14px!important}
body.ch-theme .ch-rush--compact .ch-rush-screen-heading p{font-size:9px!important}
body.ch-theme .ch-rush--compact .ch-rush-characters{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
body.ch-theme .ch-rush--compact .ch-rush-character{min-height:88px!important;max-height:none!important;padding:5px!important}
body.ch-theme .ch-rush--compact .ch-rush-character-preview{height:48px!important;max-width:62px!important}
body.ch-theme .ch-rush--compact .ch-rush-levels{grid-template-columns:1fr!important;gap:5px!important}
body.ch-theme .ch-rush--compact .ch-rush-level{min-height:42px!important;padding:6px 8px!important}
body.ch-theme .ch-rush--compact .ch-rush-durations{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
body.ch-theme .ch-rush--compact .ch-rush-duration{padding:6px!important;min-height:34px!important}
body.ch-theme .ch-rush--compact .ch-rush-stage{height:clamp(178px,68cqi,230px)!important;min-height:0!important;max-height:none!important}
body.ch-theme .ch-rush--compact .ch-rush-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important}
body.ch-theme .ch-rush--compact .ch-rush-stats>div{padding:5px!important}
body.ch-theme .ch-rush--compact .ch-rush-reward-rule{display:none!important}
body.ch-theme .ch-rush--compact .ch-rush-result{min-height:28px!important;padding:5px 7px!important}
body.ch-theme .ch-rush--compact .ch-rush-failed-card,
body.ch-theme .ch-rush--compact .ch-rush-result-card{max-height:none!important;padding:12px!important}
body.ch-theme .ch-rush:fullscreen,
body.ch-theme .ch-rush:-webkit-full-screen{
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  padding:clamp(10px,2vw,20px)!important;
  overflow:auto!important;
}
body.ch-theme .ch-rush:fullscreen .ch-rush-flow,
body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-flow{
  width:min(100%,1400px)!important;
  margin-inline:auto!important;
  min-height:0!important;
  max-height:none!important;
}
body.ch-theme .ch-rush:fullscreen .ch-rush-stage,
body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-stage{
  height:clamp(280px,58dvh,720px)!important;
  min-height:0!important;
  max-height:none!important;
}
@container ch-rush (max-width:390px){
  body.ch-theme .ch-rush .ch-rush-characters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ch-theme .ch-rush .ch-rush-durations{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px){
  body.ch-theme .ch-rush .ch-rush-stage{height:clamp(220px,72vw,320px)!important}
  body.ch-theme .ch-rush:fullscreen .ch-rush-stage,
  body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-stage{height:clamp(240px,52dvh,520px)!important}
}

/* Local Loops must look like a vertical-video product even before the first upload. */
body.ch-theme .ch-loops-app{max-width:760px!important;margin-inline:auto!important}
body.ch-theme .ch-loops-tabs{
  display:flex!important;justify-content:center!important;gap:6px!important;
  margin:0 auto 14px!important;padding:5px!important;width:max-content!important;max-width:100%!important;
  border:1px solid var(--ch-theme-border,#26364a)!important;border-radius:999px!important;
  background:var(--ch-theme-surface,#111b2a)!important;
}
body.ch-theme .ch-loops-tabs button{
  border:0!important;border-radius:999px!important;padding:8px 14px!important;background:transparent!important;
  color:var(--ch-theme-muted,#9aa8ba)!important;font-weight:850!important;cursor:pointer!important;
}
body.ch-theme .ch-loops-tabs button.is-active{background:var(--ch-theme-primary,#0788ff)!important;color:#fff!important}
body.ch-theme .ch-loops-empty-stage{
  display:grid!important;place-items:center!important;min-height:560px!important;padding:18px!important;
  border-radius:24px!important;background:radial-gradient(circle at 50% 20%,rgba(7,136,255,.16),transparent 36%),#030712!important;
  border:1px solid rgba(255,255,255,.10)!important;
}
body.ch-theme .ch-loops-empty-phone{
  width:min(100%,360px)!important;aspect-ratio:9/16!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;gap:12px!important;padding:28px!important;text-align:center!important;
  border:1px solid rgba(255,255,255,.16)!important;border-radius:30px!important;
  background:linear-gradient(180deg,#10192a,#050913)!important;color:#fff!important;
  box-shadow:0 24px 70px rgba(0,0,0,.34)!important;
}
body.ch-theme .ch-loops-empty-play{display:grid!important;place-items:center!important;width:72px!important;height:72px!important;border-radius:50%!important;background:#0788ff!important;font-size:26px!important;box-shadow:0 12px 34px rgba(7,136,255,.38)!important}
body.ch-theme .ch-loops-empty-phone strong{font-size:22px!important;line-height:1.1!important}
body.ch-theme .ch-loops-empty-phone span{color:#b8c5d8!important;font-size:13px!important;line-height:1.45!important}
body.ch-theme .ch-loops-empty-phone button{border:0!important;border-radius:999px!important;padding:11px 18px!important;background:#fff!important;color:#07111f!important;font-weight:900!important;cursor:pointer!important}

@media(max-width:620px){
  body.ch-theme .ch-loops-empty-stage{min-height:calc(100svh - 230px)!important;padding:8px!important;border-radius:16px!important}
  body.ch-theme .ch-loops-empty-phone{width:min(100%,330px)!important;border-radius:22px!important}
}

/* =========================================================
   v0.4.192 — standalone Messages page recovery.
   Mirrors the Notifications page family while Better Messages
   remains the owner of messenger content and interactions.
   ========================================================= */
body.ch-theme .ch-messages-page{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  color:var(--ch-theme-text)!important;
}
body.ch-theme .ch-messages-header{
  position:relative!important;
  isolation:isolate!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  width:100%!important;
  min-height:0!important;
  margin:0 0 12px!important;
  padding:14px 16px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border) 82%,transparent)!important;
  border-radius:18px!important;
  background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--ch-theme-blue) 10%,transparent),transparent 15rem),linear-gradient(135deg,color-mix(in srgb,var(--ch-theme-blue) 5%,var(--ch-theme-surface)),var(--ch-theme-surface))!important;
  box-shadow:0 10px 26px rgba(16,24,40,.055)!important;
  overflow:hidden!important;
}
body.ch-theme .ch-messages-header>div:first-child{min-width:0!important;flex:1 1 auto!important}
body.ch-theme .ch-messages-header h1{
  margin:0!important;color:var(--ch-theme-text)!important;
  font-size:clamp(1.34rem,2vw,1.9rem)!important;line-height:1.02!important;
  letter-spacing:-.045em!important;font-weight:950!important;
}
body.ch-theme .ch-messages-header .ch-page-subtitle{
  margin:5px 0 0!important;color:var(--ch-theme-muted)!important;
  font-size:.92rem!important;line-height:1.36!important;font-weight:750!important;
}
body.ch-theme .ch-messages-header .ch-page-eyebrow{
  display:inline-flex!important;width:fit-content!important;margin:0 0 6px!important;
  padding:4px 8px!important;border-radius:999px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue) 18%,transparent)!important;
  background:color-mix(in srgb,var(--ch-theme-blue) 8%,transparent)!important;
  color:var(--ch-theme-blue-dark)!important;font-size:.72rem!important;font-weight:950!important;
  line-height:1!important;letter-spacing:.035em!important;text-transform:uppercase!important;
}
body.ch-theme .ch-messages-header .ch-hub-page-nav{
  flex:0 0 auto!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;
  flex-wrap:wrap!important;gap:6px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;
}
body.ch-theme .ch-messages-header .ch-hub-nav-button{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:32px!important;width:auto!important;padding:7px 10px!important;border-radius:999px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border) 78%,transparent)!important;
  background:color-mix(in srgb,var(--ch-theme-surface-soft) 78%,var(--ch-theme-surface))!important;
  color:color-mix(in srgb,var(--ch-theme-text) 76%,var(--ch-theme-muted))!important;
  font-size:.78rem!important;font-weight:900!important;line-height:1!important;text-decoration:none!important;
}
body.ch-theme .ch-messages-page-shell{
  width:100%!important;max-width:100%!important;min-height:min(72vh,720px)!important;
  margin:0!important;padding:0!important;border-radius:18px!important;
  border:1px solid var(--ch-theme-border)!important;background:var(--ch-theme-surface)!important;
  overflow:hidden!important;position:relative!important;
}
body.ch-theme .ch-messages-page-shell>.bp-messages-wrap-main,
body.ch-theme .ch-messages-page-shell>.bp-messages-wrap{width:100%!important;max-width:100%!important;min-height:inherit!important;margin:0!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-messages-header{
  background:radial-gradient(circle at 100% 0%,rgba(0,128,255,.14),transparent 15rem),linear-gradient(135deg,rgba(15,27,45,.96),var(--ch-theme-surface))!important;
  border-color:var(--ch-theme-border)!important;box-shadow:0 12px 30px rgba(0,0,0,.22)!important;
}
@media(max-width:782px){
  body.ch-theme .ch-messages-header{align-items:flex-start!important;flex-direction:column!important;padding:12px!important;border-radius:15px!important}
  body.ch-theme .ch-messages-header .ch-hub-page-nav{justify-content:flex-start!important;width:100%!important;overflow-x:auto!important;flex-wrap:nowrap!important;padding-bottom:2px!important}
  body.ch-theme .ch-messages-page-shell{min-height:calc(100dvh - 210px)!important;border-radius:14px!important}
}

/* =========================================================
   v0.4.193 — BM mobile message-menu stacking + notification responsiveness
   ========================================================= */
@media (max-width:782px){
  body .bp-messages-wrap.bp-messages-mobile .expandingButtons,
  body .bp-messages-wrap.bp-messages-mobile .thread-actions,
  body .bp-messages-wrap.bp-messages-mobile .chat-header{
    overflow:visible!important;
  }
  body .bp-messages-wrap.bp-messages-mobile .expandingButtons{
    position:relative!important;
    z-index:2147483500!important;
  }
  body .bp-messages-wrap.bp-messages-mobile .expandingButtons.expandingButtonsOpen{
    z-index:2147483646!important;
  }
  body .bp-messages-wrap.bp-messages-mobile .expandingButtons .bpbm-dropdown-menu{
    z-index:2147483647!important;
    max-width:min(88vw,320px)!important;
    right:0!important;
    left:auto!important;
  }
}


/* =========================================================
   v0.4.194 — BM mobile message-action portal recovery
   The per-message three-dot menu is React-Contexify, mounted outside the
   fixed full-screen BM wrapper. Its provider default z-index (666) sits behind
   BM's mobile shell (100000), so changing .expandingButtons cannot fix it.
   ========================================================= */
@media (max-width:782px){
  body.bp-messages-mobile .contexify.bm-contexify,
  body.ch-bm-mobile-session .contexify.bm-contexify{
    --contexify-zIndex:2147483647!important;
    z-index:2147483647!important;
    position:fixed!important;
    max-width:calc(100vw - 16px)!important;
  }
}
\n\n/* =========================================================\n   v0.4.195 — Local Loops centered route-shell recovery.\n   Loops is a dedicated vertical-video surface, not a Community rail/feed\n   column. Center the whole experience in the available page viewport.\n   ========================================================= */\nbody.ch-theme .ch-theme-community-shell--loops{\n  display:block!important;\n  width:100%!important;\n  max-width:100%!important;\n  margin-inline:auto!important;\n}\nbody.ch-theme .ch-theme-container--community.ch-theme-community-shell--loops{\n  width:min(100% - 32px,1180px)!important;\n  max-width:1180px!important;\n  margin-inline:auto!important;\n}\nbody.ch-theme .ch-theme-community-shell--loops .ch-theme-community-content-wrap{\n  display:block!important;\n  width:100%!important;\n  max-width:980px!important;\n  margin-inline:auto!important;\n  padding-inline:0!important;\n  justify-self:center!important;\n}\nbody.ch-theme .ch-community-loops-route-main .ch-loops-app,\nbody.ch-theme .ch-theme-community-shell--loops .ch-loops-app{\n  width:min(100%,760px)!important;\n  max-width:760px!important;\n  margin-inline:auto!important;\n}\nbody.ch-theme .ch-community-loops-route-main .ch-loops-feed,\nbody.ch-theme .ch-theme-community-shell--loops .ch-loops-feed{\n  width:100%!important;\n  justify-items:center!important;\n}\n@media(max-width:782px){\n  body.ch-theme .ch-theme-container--community.ch-theme-community-shell--loops{\n    width:100%!important;\n    max-width:100%!important;\n    padding-inline:10px!important;\n  }\n  body.ch-theme .ch-theme-community-shell--loops .ch-theme-community-content-wrap,\n  body.ch-theme .ch-community-loops-route-main .ch-loops-app,\n  body.ch-theme .ch-theme-community-shell--loops .ch-loops-app{\n    width:100%!important;\n    max-width:100%!important;\n  }\n}\n
/* =========================================================
   v0.4.196 — Local Loops vertical feed + legacy-video framing.
   Builds on approved v0.4.195 centered shell. Presentation only.
   ========================================================= */
body.ch-theme .ch-loops-app{
  --ch-loop-feed-height:min(76svh,880px);
}
body.ch-theme .ch-loops-header{
  margin-bottom:10px!important;
}
body.ch-theme .ch-loops-tabs{
  position:sticky!important;
  top:calc(var(--ch-theme-header-height,64px) + 8px)!important;
  z-index:12!important;
  margin:0 auto 10px!important;
  backdrop-filter:blur(14px)!important;
}
body.ch-theme .ch-loops-feed{
  display:block!important;
  height:var(--ch-loop-feed-height)!important;
  max-height:880px!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  scroll-snap-type:y mandatory!important;
  scroll-behavior:smooth!important;
  scrollbar-width:none!important;
  border-radius:24px!important;
}
body.ch-theme .ch-loops-feed::-webkit-scrollbar{display:none!important}
body.ch-theme .ch-loop-card{
  width:min(100%,495px)!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:9/16!important;
  margin:0 auto!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:always!important;
  border-radius:24px!important;
}
body.ch-theme .ch-loop-video-wrap{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:#030712!important;
}
body.ch-theme .ch-loop-video{
  position:relative!important;
  z-index:1!important;
  width:100%!important;
  height:100%!important;
  object-position:center center!important;
  transition:object-fit .18s ease!important;
}
body.ch-theme .ch-loop-card.ch-loop-fit-fit .ch-loop-video{object-fit:contain!important}
body.ch-theme .ch-loop-card.ch-loop-fit-crop .ch-loop-video{object-fit:cover!important}
body.ch-theme .ch-loop-fit-toggle{
  position:absolute!important;
  z-index:4!important;
  top:14px!important;
  left:14px!important;
  min-width:58px!important;
  padding:8px 10px!important;
  border:1px solid rgba(255,255,255,.25)!important;
  border-radius:999px!important;
  background:rgba(2,6,23,.62)!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  backdrop-filter:blur(10px)!important;
  cursor:pointer!important;
}
body.ch-theme .ch-loops-compose-note{
  display:grid!important;
  gap:3px!important;
  padding:10px 12px!important;
  border-radius:12px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue,#0788ff) 20%,var(--ch-theme-border,#dbe3ec))!important;
  background:color-mix(in srgb,var(--ch-theme-blue,#0788ff) 6%,var(--ch-theme-surface,#fff))!important;
}
body.ch-theme .ch-loops-compose-note strong{font-size:12px!important}
body.ch-theme .ch-loops-compose-note span{font-size:12px!important;line-height:1.4!important;color:var(--ch-theme-muted,#64748b)!important}
body.ch-theme .ch-loops-feed[aria-busy="true"]{opacity:.55!important;pointer-events:none!important}
body.ch-theme .ch-loops-more{margin-top:10px!important}
@media(max-width:782px){
  body.ch-theme .ch-loops-app{--ch-loop-feed-height:calc(100svh - 176px)}
  body.ch-theme .ch-loops-header{padding:10px 12px!important;margin-bottom:8px!important}
  body.ch-theme .ch-loops-header h1{font-size:28px!important}
  body.ch-theme .ch-loops-header p{font-size:12px!important}
  body.ch-theme .ch-loops-feed{border-radius:18px!important}
  body.ch-theme .ch-loop-card{width:100%!important;border-radius:18px!important}
  body.ch-theme .ch-loops-tabs{top:8px!important}
}
@media(max-width:480px){
  body.ch-theme .ch-loops-app{--ch-loop-feed-height:calc(100svh - 160px)}
  body.ch-theme .ch-loops-header p{display:none!important}
}

/* =========================================================
   v0.4.197 — Local Loops native engagement rail.
   Presentation only; Core owns reactions, Saved and discussion data.
   ========================================================= */
body.ch-theme .ch-loop-overlay{
  align-items:flex-end!important;
  padding:120px 14px 16px!important;
  background:linear-gradient(to bottom,transparent 0%,rgba(2,6,23,.08) 35%,rgba(2,6,23,.88) 100%)!important;
  pointer-events:none!important;
}
body.ch-theme .ch-loop-meta,
body.ch-theme .ch-loop-action-rail{pointer-events:auto!important}
body.ch-theme .ch-loop-creator{max-width:100%!important;align-items:center!important}
body.ch-theme .ch-loop-avatar{
  flex:0 0 auto!important;
  width:46px!important;height:46px!important;border-radius:50%!important;
  border:2px solid rgba(255,255,255,.88)!important;
  box-shadow:0 4px 18px rgba(0,0,0,.28)!important;
  overflow:hidden!important;
}
body.ch-theme .ch-loop-avatar img{width:100%!important;height:100%!important}
body.ch-theme .ch-loop-name{font-size:14px!important;letter-spacing:-.01em!important;text-shadow:0 2px 8px rgba(0,0,0,.5)!important}
body.ch-theme .ch-loop-creator p{font-size:13px!important;line-height:1.35!important;text-shadow:0 2px 8px rgba(0,0,0,.55)!important}
body.ch-theme .ch-loop-action-rail{right:14px!important;bottom:16px!important;gap:10px!important}
body.ch-theme .ch-loop-action{
  width:58px!important;min-width:58px!important;min-height:58px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  background:rgba(2,6,23,.42)!important;
  box-shadow:0 5px 18px rgba(0,0,0,.16)!important;
  transition:transform .16s ease,background .16s ease,border-color .16s ease!important;
}
body.ch-theme .ch-loop-action:hover,
body.ch-theme .ch-loop-action:focus-visible{transform:translateY(-1px)!important;background:rgba(15,23,42,.76)!important;border-color:rgba(255,255,255,.34)!important}
body.ch-theme .ch-loop-action.is-active{background:color-mix(in srgb,var(--ch-theme-blue,#0788ff) 78%,rgba(2,6,23,.46))!important;border-color:rgba(255,255,255,.34)!important}
body.ch-theme .ch-loop-reaction-picker{z-index:8!important}
body.ch-theme .ch-loop-reaction-option{transition:transform .15s ease,background .15s ease!important}
body.ch-theme .ch-loop-card.is-active-loop{box-shadow:0 18px 52px rgba(0,0,0,.28)!important}
@media(max-width:782px){
  body.ch-theme .ch-loop-overlay{padding:100px 10px 12px!important}
  body.ch-theme .ch-loop-action-rail{right:8px!important;bottom:12px!important;gap:8px!important}
  body.ch-theme .ch-loop-action{width:52px!important;min-width:52px!important;min-height:52px!important}
  body.ch-theme .ch-loop-action-icon{font-size:22px!important}
  body.ch-theme .ch-loop-action-count,body.ch-theme .ch-loop-action-text{font-size:9px!important}
  body.ch-theme .ch-loop-avatar{width:42px!important;height:42px!important}
}

/* =========================================================
   v0.4.198 — Local Loops mobile fullscreen + comment split-view.
   Keeps approved centered desktop shell and native Community engagement.
   ========================================================= */
body.ch-theme .ch-loop-comments-sheet{
  position:fixed!important;
  right:24px!important;
  bottom:24px!important;
  z-index:2147482500!important;
  width:min(430px,calc(100vw - 48px))!important;
  height:min(64vh,620px)!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:22px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#182230)!important;
  box-shadow:0 24px 80px rgba(2,6,23,.34)!important;
  transform:translateY(calc(100% + 40px))!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:transform .24s ease,opacity .2s ease!important;
}
body.ch-theme .ch-loop-comments-sheet[hidden]{display:none!important}
body.ch-theme .ch-loop-comments-sheet.is-open{
  transform:translateY(0)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
body.ch-theme .ch-loop-comments-sheet-head{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  min-height:56px!important;
  padding:10px 14px!important;
  border-bottom:1px solid var(--ch-theme-border,#dbe3ec)!important;
  background:var(--ch-theme-surface,#fff)!important;
}
body.ch-theme .ch-loop-comments-sheet-head>div{display:grid!important;gap:2px!important}
body.ch-theme .ch-loop-comments-sheet-head strong{font-size:16px!important;line-height:1.1!important}
body.ch-theme .ch-loop-comments-sheet-head span{font-size:11px!important;color:var(--ch-theme-muted,#64748b)!important}
body.ch-theme .ch-loop-comments-close{
  display:grid!important;place-items:center!important;width:36px!important;height:36px!important;padding:0!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;border-radius:50%!important;
  background:var(--ch-theme-surface-soft,#f1f5f9)!important;color:var(--ch-theme-text,#182230)!important;
  font-size:25px!important;line-height:1!important;cursor:pointer!important;
}
body.ch-theme .ch-loop-comments-sheet-body{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;padding:10px!important;overscroll-behavior:contain!important}
body.ch-theme .ch-loop-comments-loading,body.ch-theme .ch-loop-comments-error{padding:28px 12px!important;text-align:center!important;color:var(--ch-theme-muted,#64748b)!important}
body.ch-theme .ch-loop-comments-sheet .ch-comments-box{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
body.ch-theme .ch-loop-comments-sheet .ch-comment-form{position:sticky!important;top:0!important;z-index:4!important;margin:0 0 10px!important;background:var(--ch-theme-surface,#fff)!important}

/* The picker must wrap/stack instead of becoming a horizontal strip wider than the phone. */
@media(max-width:782px){
  body.ch-theme.ch-loops-route{overflow:hidden!important;background:#020617!important}
  body.ch-theme.ch-loops-route .ch-theme-header,
  body.ch-theme.ch-loops-route .ch-theme-community-bar,
  body.ch-theme.ch-loops-route .ch-theme-footer,
  body.ch-theme.ch-loops-route .ch-theme-footer-widgets{display:none!important}
  body.ch-theme.ch-loops-route .ch-theme-container--community.ch-theme-community-shell--loops,
  body.ch-theme.ch-loops-route .ch-theme-community-shell--loops,
  body.ch-theme.ch-loops-route .ch-theme-community-content-wrap,
  body.ch-theme.ch-loops-route .ch-community-loops-route-main{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  body.ch-theme.ch-loops-route .ch-loops-app{
    position:fixed!important;inset:0!important;z-index:2147482000!important;
    width:100vw!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;
    margin:0!important;padding:0!important;overflow:hidden!important;background:#020617!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-header{
    position:absolute!important;top:max(10px,env(safe-area-inset-top))!important;right:max(10px,env(safe-area-inset-right))!important;z-index:35!important;
    width:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-header>div{display:none!important}
  body.ch-theme.ch-loops-route .ch-loops-create-toggle{
    width:42px!important;height:42px!important;min-width:42px!important;padding:0!important;border-radius:50%!important;
    font-size:0!important;box-shadow:0 8px 24px rgba(0,0,0,.28)!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-create-toggle::after{content:'+'!important;font-size:25px!important;line-height:1!important}
  body.ch-theme.ch-loops-route .ch-loops-tabs{
    position:absolute!important;top:max(10px,env(safe-area-inset-top))!important;left:50%!important;right:auto!important;z-index:34!important;
    width:auto!important;max-width:calc(100vw - 118px)!important;margin:0!important;transform:translateX(-50%)!important;
    border-radius:999px!important;background:rgba(2,6,23,.5)!important;border:1px solid rgba(255,255,255,.12)!important;
    backdrop-filter:blur(14px)!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-tabs button{padding:8px 10px!important;color:#fff!important;font-size:11px!important;white-space:nowrap!important}
  body.ch-theme.ch-loops-route .ch-loops-feed{
    position:absolute!important;inset:0!important;width:100vw!important;height:100dvh!important;max-height:none!important;
    margin:0!important;padding:0!important;border-radius:0!important;background:#020617!important;
    transition:height .24s ease!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-card{
    width:100vw!important;max-width:none!important;height:100dvh!important;min-height:100dvh!important;aspect-ratio:auto!important;
    margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;scroll-snap-align:start!important;
    transition:height .24s ease,min-height .24s ease!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-video-wrap{height:100%!important}
  body.ch-theme.ch-loops-route .ch-loop-sound{top:calc(max(10px,env(safe-area-inset-top)) + 52px)!important;right:max(10px,env(safe-area-inset-right))!important}
  body.ch-theme.ch-loops-route .ch-loop-fit-toggle{top:calc(max(10px,env(safe-area-inset-top)) + 52px)!important;left:max(10px,env(safe-area-inset-left))!important}
  body.ch-theme.ch-loops-route .ch-loop-overlay{padding:120px 10px calc(14px + env(safe-area-inset-bottom))!important}
  body.ch-theme.ch-loops-route .ch-loop-action-rail{right:max(8px,env(safe-area-inset-right))!important;bottom:calc(12px + env(safe-area-inset-bottom))!important}
  body.ch-theme.ch-loops-route .ch-loop-reaction-picker{
    right:60px!important;top:auto!important;bottom:0!important;
    display:grid!important;grid-template-columns:repeat(2,38px)!important;grid-auto-rows:38px!important;
    gap:6px!important;width:auto!important;max-width:94px!important;max-height:calc(100dvh - 120px)!important;
    padding:8px!important;border-radius:18px!important;overflow-y:auto!important;overflow-x:hidden!important;
    transform:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-reaction-option{width:38px!important;height:38px!important;min-width:38px!important}
  body.ch-theme.ch-loops-route .ch-loops-compose{
    position:absolute!important;z-index:50!important;top:64px!important;left:10px!important;right:10px!important;
    max-height:calc(100dvh - 84px)!important;overflow:auto!important;margin:0!important;border-radius:18px!important;
  }

  /* Split-view comments: video remains visible and playing while the sheet occupies the lower part of the phone. */
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet{
    position:absolute!important;left:0!important;right:0!important;bottom:0!important;z-index:60!important;
    width:100vw!important;height:44dvh!important;max-height:44dvh!important;border-width:1px 0 0!important;border-radius:20px 20px 0 0!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
    transform:translateY(100%)!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet.is-open{transform:translateY(0)!important}
  body.ch-theme.ch-loops-route .ch-loops-app.is-comments-open .ch-loops-feed{height:56dvh!important;max-height:56dvh!important}
  body.ch-theme.ch-loops-route .ch-loops-app.is-comments-open .ch-loop-card{height:56dvh!important;min-height:56dvh!important}
  body.ch-theme.ch-loops-route .ch-loops-app.is-comments-open .ch-loop-overlay{padding-top:74px!important;padding-bottom:10px!important}
  body.ch-theme.ch-loops-route .ch-loops-app.is-comments-open .ch-loop-action-rail{bottom:8px!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet-body{padding:8px 10px!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-form{padding-top:2px!important}
}


/* =========================================================
   v0.4.199 — Local Loops picker + comments media recovery.
   Keep the approved fullscreen/centered feed geometry intact.
   ========================================================= */
body.ch-theme .ch-loop-reaction-picker{
  display:grid!important;
  grid-template-columns:repeat(3,40px)!important;
  grid-auto-rows:40px!important;
  align-items:center!important;
  justify-items:center!important;
  gap:7px!important;
  width:auto!important;
  max-width:154px!important;
  max-height:min(280px,70vh)!important;
  padding:9px!important;
  border-radius:18px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body.ch-theme .ch-loop-reaction-picker[hidden]{display:none!important}
body.ch-theme .ch-loop-reaction-option{
  display:grid!important;
  place-items:center!important;
  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  padding:0!important;
  margin:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
}
body.ch-theme .ch-loop-reaction-option img,
body.ch-theme .ch-loop-reaction-option .ch-reaction-icon-img{
  display:block!important;
  width:28px!important;
  height:28px!important;
  max-width:28px!important;
  max-height:28px!important;
  object-fit:contain!important;
  margin:auto!important;
}
body.ch-theme .ch-loop-reaction-option .ch-reaction-emoji{
  display:block!important;
  width:auto!important;
  height:auto!important;
  font-size:25px!important;
  line-height:1!important;
  margin:0!important;
}
/* GIFs/images inside the split-view comments must fit the sheet instead of
   retaining full Community-feed media dimensions. */
body.ch-theme .ch-loop-comments-sheet .ch-comment-gif,
body.ch-theme .ch-loop-comments-sheet .ch-comment-attachment,
body.ch-theme .ch-loop-comments-sheet .ch-comment-attachment-image,
body.ch-theme .ch-loop-comments-sheet .ch-gif-embed,
body.ch-theme .ch-loop-comments-sheet .ch-gif-legacy{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
body.ch-theme .ch-loop-comments-sheet .ch-gif-embed-image,
body.ch-theme .ch-loop-comments-sheet .ch-gif-legacy-video,
body.ch-theme .ch-loop-comments-sheet .ch-comment-attachment-image img,
body.ch-theme .ch-loop-comments-sheet .ch-comment-attachment img{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  max-height:min(220px,34vh)!important;
  margin:6px auto!important;
  object-fit:contain!important;
}
body.ch-theme .ch-loop-comments-sheet .ch-media-lightbox-trigger{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
body.ch-theme .ch-loop-card.is-video-unavailable .ch-loop-video-wrap::after{
  content:'Video unavailable';
  position:absolute!important;
  inset:50% auto auto 50%!important;
  z-index:3!important;
  transform:translate(-50%,-50%)!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  background:rgba(2,6,23,.72)!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:800!important;
}
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loop-reaction-picker{
    right:60px!important;
    grid-template-columns:repeat(2,40px)!important;
    grid-auto-rows:40px!important;
    width:auto!important;
    max-width:105px!important;
    max-height:calc(100dvh - 140px)!important;
    padding:8px!important;
    gap:7px!important;
    border-radius:17px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-reaction-option{
    width:40px!important;min-width:40px!important;max-width:40px!important;
    height:40px!important;min-height:40px!important;max-height:40px!important;
    flex:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-gif-embed-image,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-gif-legacy-video,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-attachment-image img,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-attachment img{
    max-height:min(150px,22dvh)!important;
  }
}

/* Local Loops v0.4.200 — reaction grid + compact mobile GIF comments. */
body.ch-theme .ch-loop-reaction-picker{
  grid-template-columns:repeat(4,40px)!important;
  grid-auto-rows:40px!important;
  width:auto!important;
  max-width:202px!important;
  gap:7px!important;
}
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loop-reaction-picker{
    right:58px!important;
    grid-template-columns:repeat(3,38px)!important;
    grid-auto-rows:38px!important;
    width:auto!important;
    max-width:148px!important;
    gap:6px!important;
    padding:8px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-reaction-option{
    width:38px!important;min-width:38px!important;max-width:38px!important;
    height:38px!important;min-height:38px!important;max-height:38px!important;
  }
  /* Keep animated GIF comments deliberately thumbnail-sized while watching a Loop. */
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-gif,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-gif-embed,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-gif-legacy{
    width:auto!important;
    max-width:104px!important;
    margin:5px 0!important;
    overflow:hidden!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-gif-embed-image,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-gif-legacy-video,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-gif img,
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-gif video{
    width:auto!important;
    max-width:96px!important;
    height:auto!important;
    max-height:88px!important;
    margin:4px 0!important;
    object-fit:contain!important;
  }
}


/* CommunityHub v0.4.201 — native Follow control presentation. */
body.ch-theme .ch-profile-card .ch-profile-social-button.is-following{
  position:relative!important;
}
body.ch-theme .ch-profile-card .ch-profile-social-button.is-following:hover,
body.ch-theme .ch-profile-card .ch-profile-social-button.is-following:focus-visible{
  border-color:var(--ch-theme-blue,#2563eb)!important;
}

/* v0.4.202 — Loops menu / moderation presentation. */
body.ch-theme .ch-loop-menu-wrap{z-index:12!important}
body.ch-theme .ch-loop-menu-toggle{background:rgba(2,6,23,.62)!important;border-color:rgba(255,255,255,.26)!important;color:#fff!important;box-shadow:0 8px 22px rgba(0,0,0,.24)!important}
body.ch-theme .ch-loop-menu-toggle:hover,body.ch-theme .ch-loop-menu-toggle:focus-visible{background:rgba(15,23,42,.84)!important}
body.ch-theme .ch-loop-menu{background:rgba(2,6,23,.96)!important;border-color:rgba(255,255,255,.18)!important}
body.ch-theme .ch-loop-menu a,body.ch-theme .ch-loop-menu button{color:#fff!important}
body.ch-theme .ch-loop-menu .is-danger{color:#fecaca!important}
body.ch-theme .ch-loop-card.is-loop-blurred .ch-explicit-overlay{background:rgba(2,6,23,.28)!important;backdrop-filter:blur(3px)!important}
body.ch-theme .ch-loop-card.is-loop-blurred .ch-explicit-overlay strong,body.ch-theme .ch-loop-card.is-loop-blurred .ch-explicit-overlay span{color:#fff!important}
body.ch-theme .ch-loop-card.is-loop-blurred .ch-explicit-reveal{background:#fff!important;color:#111827!important}
@media(max-width:620px){body.ch-theme.ch-loops-route .ch-loop-menu-wrap{top:calc(max(10px,env(safe-area-inset-top)) + 52px)!important;right:max(8px,env(safe-area-inset-right))!important}body.ch-theme.ch-loops-route .ch-loop-menu{top:46px!important;right:0!important}}

/* =========================================================
   v0.4.203 — Local Loops Post-Skin inheritance + sound placement.
   Loops inherits ONLY the creator's equipped Community Post Skin.
   Sacred zero-state: no post Skin = no Loops Skin overrides.
   ========================================================= */
.ch-loops-app .ch-loop-sound{
  left:14px!important;
  right:auto!important;
}

/* Loops deliberately consumes the Post Skin slot; it must never inherit
   Profile/Nav/BM surface identity. */
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post{
  isolation:isolate;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-neon-circuit{
  border-color:rgba(34,211,238,.78)!important;
  box-shadow:0 0 0 1px rgba(99,102,241,.24),0 0 18px rgba(34,211,238,.24),0 12px 34px rgba(6,182,212,.16)!important;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-neon-circuit::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:8;
  pointer-events:none;
  border-radius:inherit;
  padding:2px;
  background:conic-gradient(from var(--ch-neon-angle,0deg),#22d3ee,rgba(59,130,246,.95),rgba(139,92,246,.92),#22d3ee);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  animation:chCosmeticCircuitBorder 4.8s linear infinite;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-ember-edge{
  border-color:rgba(249,115,22,.58)!important;
  box-shadow:inset 3px 0 0 #f97316,0 0 18px rgba(249,115,22,.18),0 12px 34px rgba(194,65,12,.14)!important;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-liberty-standard{
  border-color:rgba(226,232,240,.75)!important;
  box-shadow:inset 3px 0 0 #b71932,0 0 0 1px rgba(36,87,166,.35),0 0 18px rgba(36,87,166,.18)!important;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-midnight-pulse-post{
  border-color:rgba(200,168,75,.62)!important;
  box-shadow:0 0 0 1px rgba(200,168,75,.20),0 0 20px rgba(200,168,75,.16),0 12px 34px rgba(0,0,0,.24)!important;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-frost-signal-post{
  border-color:rgba(125,211,252,.72)!important;
  box-shadow:inset 3px 0 0 #7dd3fc,0 0 18px rgba(56,189,248,.18),0 12px 34px rgba(14,165,233,.12)!important;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-cosmic-frame-post{
  border-color:rgba(139,92,246,.68)!important;
  box-shadow:0 0 0 1px rgba(56,189,248,.22),0 0 18px rgba(139,92,246,.24),0 12px 36px rgba(76,29,149,.18)!important;
}

@media(max-width:782px){
  .ch-loops-app .ch-loop-sound{left:max(12px,env(safe-area-inset-left))!important;right:auto!important;}
}

@media(prefers-reduced-motion:reduce){
  .ch-loops-app .ch-loop-card.ch-cosmetic-slot-post.ch-cosmetic-effect-neon-circuit::after{animation:none!important;}
}

/* =========================================================
   v0.4.204 — Local Loops Skin visibility recovery + creator framing control.
   Post Skin inheritance data was present, but a full-bleed video could visually
   swallow the outer card treatment. A dedicated non-interactive perimeter layer
   now carries ONLY the equipped Community Post Skin identity.
   Sacred zero-state: no post Skin => no frame element / no override.
   ========================================================= */
.ch-loops-app .ch-loop-fit-toggle{
  left:14px!important;
  right:auto!important;
  top:54px!important;
  z-index:10!important;
  padding:6px 8px!important;
  min-width:0!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(2,6,23,.50)!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:850!important;
  line-height:1!important;
  backdrop-filter:blur(10px)!important;
  opacity:.84;
}
.ch-loops-app .ch-loop-fit-toggle:hover,
.ch-loops-app .ch-loop-fit-toggle:focus-visible{opacity:1}

.ch-loops-app .ch-loop-skin-frame{
  position:absolute;
  inset:0;
  z-index:8;
  pointer-events:none;
  border-radius:inherit;
  border:3px solid transparent;
  box-shadow:none;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-neon-circuit .ch-loop-skin-frame{
  border-color:rgba(34,211,238,.90);
  box-shadow:inset 3px 0 0 #22d3ee,inset 0 0 18px rgba(34,211,238,.13),0 0 0 1px rgba(99,102,241,.28),0 0 24px rgba(34,211,238,.32);
}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-neon-circuit .ch-loop-skin-frame::after{
  content:"";position:absolute;inset:-3px;border-radius:inherit;padding:3px;
  background:conic-gradient(from var(--ch-neon-angle,0deg),#22d3ee,#3b82f6,#8b5cf6,#22d3ee);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;animation:chCosmeticCircuitBorder 4.8s linear infinite;
}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-ember-edge .ch-loop-skin-frame{
  border-color:rgba(249,115,22,.78);box-shadow:inset 4px 0 0 #f97316,inset 0 0 16px rgba(249,115,22,.10),0 0 22px rgba(249,115,22,.28);
}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-liberty-standard .ch-loop-skin-frame{
  border-color:rgba(226,232,240,.92);box-shadow:inset 4px 0 0 #b71932,inset -4px 0 0 #2457a6,0 0 0 1px rgba(36,87,166,.38),0 0 20px rgba(36,87,166,.24);
}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-midnight-pulse-post .ch-loop-skin-frame{
  border-color:rgba(200,168,75,.82);box-shadow:inset 0 0 18px rgba(200,168,75,.10),0 0 0 1px rgba(200,168,75,.30),0 0 24px rgba(200,168,75,.28);animation:chLoopMidnightSkinPulse 3.4s ease-in-out infinite;
}
@keyframes chLoopMidnightSkinPulse{50%{box-shadow:inset 0 0 22px rgba(200,168,75,.15),0 0 0 1px rgba(200,168,75,.42),0 0 32px rgba(200,168,75,.38)}}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-frost-signal-post .ch-loop-skin-frame{
  border-color:rgba(125,211,252,.92);box-shadow:inset 4px 0 0 #7dd3fc,inset 0 0 16px rgba(56,189,248,.10),0 0 22px rgba(56,189,248,.26);
}
.ch-loops-app .ch-loop-card.ch-cosmetic-effect-cosmic-frame-post .ch-loop-skin-frame{
  border-color:rgba(139,92,246,.88);box-shadow:inset 0 0 20px rgba(139,92,246,.11),0 0 0 1px rgba(56,189,248,.32),0 0 28px rgba(139,92,246,.34);animation:chLoopCosmicSkinPulse 4.6s ease-in-out infinite;
}
@keyframes chLoopCosmicSkinPulse{50%{border-color:rgba(56,189,248,.90);box-shadow:inset 0 0 22px rgba(56,189,248,.12),0 0 0 1px rgba(139,92,246,.38),0 0 34px rgba(56,189,248,.32)}}
@media(max-width:782px){
  .ch-loops-app .ch-loop-fit-toggle{left:max(12px,env(safe-area-inset-left))!important;top:calc(max(10px,env(safe-area-inset-top)) + 44px)!important}
  .ch-loops-app .ch-loop-skin-frame{border-width:2px}
}
@media(prefers-reduced-motion:reduce){.ch-loops-app .ch-loop-skin-frame,.ch-loops-app .ch-loop-skin-frame::after{animation:none!important}}
@media(max-width:782px){
  .ch-loops-app .ch-loop-sound{top:max(10px,env(safe-area-inset-top))!important;left:max(12px,env(safe-area-inset-left))!important;right:auto!important}
}


/* =========================================================
   v0.4.205 — Loops control stack + Skin parity + profile safety menu.
   Narrow presentation pass. Friend/Message remain primary profile actions;
   Block/Report move to the overflow menu. Slot ownership remains strict.
   ========================================================= */
/* One predictable top-left Loops control stack on every breakpoint. */
body.ch-theme .ch-loops-app .ch-loop-sound{
  top:14px!important;
  left:14px!important;
  right:auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  padding:6px 9px!important;
  border-radius:999px!important;
  font-size:10px!important;
  line-height:1.15!important;
  z-index:10!important;
}
body.ch-theme .ch-loops-app .ch-loop-fit-toggle{
  top:48px!important;
  left:14px!important;
  right:auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  padding:5px 8px!important;
  font-size:9.5px!important;
  line-height:1.1!important;
  z-index:10!important;
}
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-app .ch-loop-sound{
    top:max(10px,env(safe-area-inset-top))!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:auto!important;
    padding:5px 8px!important;
    font-size:9.5px!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-app .ch-loop-fit-toggle{
    top:calc(max(10px,env(safe-area-inset-top)) + 31px)!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:auto!important;
    padding:4px 7px!important;
    font-size:9px!important;
  }
}

/* Creator avatar uses the creator's actual Avatar Skin slot. */
body.ch-theme .ch-loops-app .ch-loop-avatar.ch-cosmetic-slot-avatar{
  position:relative!important;
  isolation:isolate!important;
  overflow:visible!important;
  flex:0 0 auto!important;
  margin:4px!important;
}
body.ch-theme .ch-loops-app .ch-loop-avatar.ch-cosmetic-slot-avatar>img,
body.ch-theme .ch-loops-app .ch-loop-avatar.ch-cosmetic-slot-avatar .avatar{
  position:relative!important;
  z-index:4!important;
  border-radius:999px!important;
}
body.ch-theme .ch-loops-app .ch-loop-avatar.ch-cosmetic-slot-avatar::before,
body.ch-theme .ch-loops-app .ch-loop-avatar.ch-cosmetic-slot-avatar::after{
  z-index:3!important;
}

/* Loops comments already render the native comment + avatar Skin tokens.
   Preserve their paint/overflow inside the compact sheet instead of flattening them. */
body.ch-theme .ch-loop-comments-sheet .ch-comment.ch-cosmetic-surface{
  contain:layout style!important;
  overflow:visible!important;
}
body.ch-theme .ch-loop-comments-sheet .ch-comment-avatar.ch-cosmetic-slot-avatar{
  overflow:visible!important;
}

/* Friend + Message remain the friendly primary actions. The safety menu is a
   compact third control rather than two easy-to-hit destructive buttons. */
body.ch-theme .ch-profile-card .ch-profile-actions--social{
  grid-template-columns:repeat(2,minmax(0,1fr)) 38px!important;
  max-width:286px!important;
  position:relative!important;
  overflow:visible!important;
}
body.ch-theme .ch-profile-card .ch-profile-message-button{
  grid-column:2!important;
  grid-row:1!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow{
  grid-column:3!important;
  grid-row:1!important;
  position:relative!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  margin:0!important;
  overflow:visible!important;
  z-index:40!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow>summary{
  list-style:none!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow>summary::-webkit-details-marker{display:none!important}
body.ch-theme .ch-profile-card .ch-profile-overflow-toggle{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:38px!important;
  height:38px!important;
  padding:0 0 7px!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:11px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#172033)!important;
  font-size:20px!important;
  font-weight:900!important;
  line-height:1!important;
  cursor:pointer!important;
  user-select:none!important;
  box-shadow:none!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow[open] .ch-profile-overflow-toggle,
body.ch-theme .ch-profile-card .ch-profile-overflow-toggle:hover,
body.ch-theme .ch-profile-card .ch-profile-overflow-toggle:focus-visible{
  background:var(--ch-theme-surface-soft,#f1f5f9)!important;
  outline:none!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow-menu{
  position:absolute!important;
  right:0!important;
  top:44px!important;
  z-index:9999!important;
  display:grid!important;
  min-width:164px!important;
  padding:6px!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:12px!important;
  background:var(--ch-theme-surface,#fff)!important;
  box-shadow:0 14px 34px rgba(15,23,42,.20)!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow-action{
  width:100%!important;
  margin:0!important;
  padding:9px 10px!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:var(--ch-theme-text,#172033)!important;
  -webkit-text-fill-color:currentColor!important;
  text-align:left!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow-action:hover,
body.ch-theme .ch-profile-card .ch-profile-overflow-action:focus-visible{
  background:var(--ch-theme-surface-soft,#f1f5f9)!important;
  outline:none!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow-action.is-danger{
  color:#c2414b!important;
  -webkit-text-fill-color:#c2414b!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card .ch-profile-overflow-toggle,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-profile-card .ch-profile-overflow-menu,
body.ch-theme-mode-dark .ch-profile-card .ch-profile-overflow-toggle,
body.ch-theme-mode-dark .ch-profile-card .ch-profile-overflow-menu,
body.ch-theme-dark .ch-profile-card .ch-profile-overflow-toggle,
body.ch-theme-dark .ch-profile-card .ch-profile-overflow-menu{
  border-color:rgba(148,163,184,.25)!important;
  background:var(--ch-theme-surface,#111827)!important;
  color:var(--ch-theme-text,#e7edf6)!important;
}
@media(max-width:900px){
  body.ch-theme .ch-profile-card .ch-profile-actions--social{
    grid-template-columns:repeat(2,minmax(0,1fr)) 38px!important;
    max-width:none!important;
  }
}
@media(max-width:782px){
  body.ch-theme .ch-profile-card .ch-profile-actions--social{
    grid-template-columns:repeat(2,minmax(0,1fr)) 38px!important;
    max-width:none!important;
  }
}

/* =========================================================
   v0.4.206 — Loops mobile snap parity + overflow-menu recovery.
   Preserve approved Sound/Crop, Skins and primary profile actions.
   ========================================================= */
/* Mobile: remove extra momentum softness and let Core settle exactly one Loop
   after each swipe, matching the decisive desktop snap feel. */
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-feed{
    scroll-snap-type:y mandatory!important;
    scroll-behavior:smooth!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:auto!important;
    touch-action:pan-y!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-card{
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
}

/* Profile safety menu: the card itself historically clips children so its
   rounded cover stays clean. Only release that clipping while this menu is open. */
body.ch-theme .ch-profile-page,
body.ch-theme .ch-profile-main,
body.ch-theme .ch-profile-actions--social{overflow:visible!important}
body.ch-theme .ch-profile-card:has(.ch-profile-overflow[open]){
  overflow:visible!important;
  position:relative!important;
  z-index:120!important;
}
body.ch-theme .ch-profile-card .ch-profile-overflow[open]{z-index:121!important}
body.ch-theme .ch-profile-card .ch-profile-overflow-menu{
  top:44px!important;
  bottom:auto!important;
  z-index:2147481000!important;
}

/* Loops options — compact native glass menu instead of the old generic dark list. */
body.ch-theme .ch-loop-menu-wrap{
  top:14px!important;
  right:14px!important;
  z-index:25!important;
}
body.ch-theme .ch-loop-menu-toggle{
  display:grid!important;
  place-items:center!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(2,6,23,.46)!important;
  color:#fff!important;
  box-shadow:0 8px 24px rgba(0,0,0,.22)!important;
  backdrop-filter:blur(14px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(14px) saturate(125%)!important;
  font-size:0!important;
  line-height:1!important;
  letter-spacing:0!important;
  transition:transform .14s ease,background .14s ease,border-color .14s ease!important;
}
body.ch-theme .ch-loop-menu-toggle>span{
  display:block!important;
  font-size:24px!important;
  font-weight:900!important;
  line-height:.72!important;
  transform:translateY(-1px)!important;
}
body.ch-theme .ch-loop-menu-toggle:hover,
body.ch-theme .ch-loop-menu-toggle:focus-visible,
body.ch-theme .ch-loop-menu-toggle[aria-expanded="true"]{
  transform:scale(1.04)!important;
  background:rgba(15,23,42,.78)!important;
  border-color:rgba(255,255,255,.40)!important;
  outline:none!important;
}
body.ch-theme .ch-loop-menu{
  top:46px!important;
  right:0!important;
  min-width:248px!important;
  width:248px!important;
  padding:7px!important;
  gap:2px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:18px!important;
  background:rgba(10,15,27,.94)!important;
  color:#fff!important;
  box-shadow:0 22px 64px rgba(0,0,0,.42)!important;
  backdrop-filter:blur(22px) saturate(135%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(135%)!important;
  overflow:hidden!important;
}
body.ch-theme .ch-loop-menu .ch-loop-menu-item{
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  align-items:center!important;
  gap:9px!important;
  width:100%!important;
  min-height:43px!important;
  margin:0!important;
  padding:7px 9px!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
  color:#f8fafc!important;
  -webkit-text-fill-color:currentColor!important;
  text-align:left!important;
  text-decoration:none!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.2!important;
  cursor:pointer!important;
  transition:background .13s ease,transform .13s ease!important;
}
body.ch-theme .ch-loop-menu .ch-loop-menu-item:hover,
body.ch-theme .ch-loop-menu .ch-loop-menu-item:focus-visible{
  background:rgba(255,255,255,.10)!important;
  transform:translateX(1px)!important;
  outline:none!important;
}
body.ch-theme .ch-loop-menu .ch-loop-menu-icon{
  display:grid!important;
  place-items:center!important;
  width:30px!important;
  height:30px!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.08)!important;
  color:#e2e8f0!important;
  font-size:16px!important;
  font-weight:900!important;
  line-height:1!important;
}
body.ch-theme .ch-loop-menu .ch-loop-menu-divider{
  height:1px!important;
  margin:5px 7px!important;
  background:rgba(255,255,255,.12)!important;
}
body.ch-theme .ch-loop-menu .ch-loop-menu-item.is-report{color:#fde68a!important}
body.ch-theme .ch-loop-menu .ch-loop-menu-item.is-report .ch-loop-menu-icon{background:rgba(245,158,11,.14)!important;color:#fcd34d!important}
body.ch-theme .ch-loop-menu .ch-loop-menu-item.is-danger{color:#fecaca!important}
body.ch-theme .ch-loop-menu .ch-loop-menu-item.is-danger .ch-loop-menu-icon{background:rgba(239,68,68,.14)!important;color:#fca5a5!important}

@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loop-menu-wrap{
    top:max(10px,env(safe-area-inset-top))!important;
    right:max(10px,env(safe-area-inset-right))!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-menu-toggle{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    background:rgba(2,6,23,.42)!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-menu-toggle>span{font-size:23px!important}
  body.ch-theme.ch-loops-route .ch-loop-menu{
    top:43px!important;
    right:0!important;
    width:min(264px,calc(100vw - 20px))!important;
    min-width:0!important;
    max-width:calc(100vw - 20px)!important;
    padding:8px!important;
    border-radius:20px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-menu .ch-loop-menu-item{
    min-height:46px!important;
    grid-template-columns:32px minmax(0,1fr)!important;
    gap:10px!important;
    padding:8px 10px!important;
    border-radius:13px!important;
    font-size:12.5px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-menu .ch-loop-menu-icon{
    width:32px!important;
    height:32px!important;
    border-radius:11px!important;
  }
}

/* =========================================================
   v0.4.207 — Loops native mobile snap parity + Nav Bar recovery.
   Remove the floating Loop post control and use the approved mobile Nav Bar.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-loops-route{
    --ch-loops-mobile-nav-h:calc(58px + env(safe-area-inset-bottom));
  }

  /* The Loops + button duplicated the Nav Bar post action and collided with
     the per-video safety menu. Keep the composer available elsewhere but
     remove this floating mobile trigger. */
  body.ch-theme.ch-loops-route .ch-loops-create-toggle{display:none!important}

  /* Restore only the approved bottom Nav Bar. The site header remains hidden
     so Loops keeps its immersive mobile presentation. */
  body.ch-theme.ch-loops-route .ch-theme-community-bar--bottom{
    display:block!important;
    z-index:2147483000!important;
    transform:translateY(0)!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  /* Reserve real viewport space for the Nav Bar instead of allowing it to
     cover the Loop action rail/comments. */
  body.ch-theme.ch-loops-route .ch-loops-app{
    inset:0 0 var(--ch-loops-mobile-nav-h) 0!important;
    width:100vw!important;
    height:auto!important;
    max-height:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-feed{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    scroll-snap-type:y mandatory!important;
    scroll-behavior:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-card{
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }

  /* Split comments remain relative to the reduced Loops viewport, so the
     restored Nav Bar remains visible and never covers the comment composer. */
  body.ch-theme.ch-loops-route .ch-loops-app.is-comments-open .ch-loops-feed{height:56%!important;max-height:56%!important}
  body.ch-theme.ch-loops-route .ch-loops-app.is-comments-open .ch-loop-card{height:100%!important;min-height:100%!important}
}

/* =========================================================
   v0.4.208 — PMPro login welcome experience
   Presentation only: PMPro remains authentication owner.
   ========================================================= */
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]){
  --ch-login-panel:var(--ch-theme-surface,#fff);
  --ch-login-panel-soft:var(--ch-theme-surface-soft,#f7f9fc);
  --ch-login-text:var(--ch-theme-text,#172033);
  --ch-login-muted:var(--ch-theme-muted,#64748b);
  --ch-login-border:var(--ch-theme-border,#dbe3ec);
  --ch-login-accent:var(--ch-theme-blue,#2878ff);
  color:var(--ch-login-text)!important;
}

/* The widget itself should read as a deliberate welcome card rather than a generic WP form. */
body.ch-theme .ch-theme-widget.widget_pmpro_login,
body.ch-theme .widget_pmpro_login,
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){
  position:relative!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  padding:22px!important;
  border:1px solid var(--ch-login-border)!important;
  border-radius:20px!important;
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--ch-login-accent) 12%,transparent) 0,transparent 42%),
    var(--ch-login-panel)!important;
  box-shadow:0 14px 38px rgba(15,23,42,.10)!important;
}
body.ch-theme .ch-theme-widget.widget_pmpro_login::before,
body.ch-theme .widget_pmpro_login::before,
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *)::before{
  content:"";
  display:block;
  width:42px;
  height:4px;
  margin:0 0 16px;
  border-radius:999px;
  background:var(--ch-login-accent);
  box-shadow:0 0 18px color-mix(in srgb,var(--ch-login-accent) 35%,transparent);
}

body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(.ch-theme-widget-title,.widget-title,h2,h3,.pmpro_card_title){
  margin:0 0 8px!important;
  color:var(--ch-login-text)!important;
  font-size:clamp(1.12rem,1.8vw,1.32rem)!important;
  line-height:1.18!important;
  letter-spacing:-.025em!important;
  font-weight:850!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) > p:first-of-type,
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) form + p{
  color:var(--ch-login-muted)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) form{
  display:grid!important;
  gap:14px!important;
  width:100%!important;
  margin:14px 0 0!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) form > p{
  margin:0!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(label,.pmpro_form_label){
  display:block!important;
  margin:0 0 7px!important;
  color:var(--ch-login-text)!important;
  font-size:.82rem!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:.01em!important;
}

body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="text"],input[type="email"],input[type="password"],input[type="url"]){
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0 14px!important;
  border:1px solid var(--ch-login-border)!important;
  border-radius:13px!important;
  outline:0!important;
  background:var(--ch-login-panel-soft)!important;
  color:var(--ch-login-text)!important;
  -webkit-text-fill-color:var(--ch-login-text)!important;
  caret-color:var(--ch-login-accent)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
  font:inherit!important;
  font-size:16px!important; /* prevents iOS zoom */
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="text"],input[type="email"],input[type="password"],input[type="url"]):hover{
  border-color:color-mix(in srgb,var(--ch-login-accent) 38%,var(--ch-login-border))!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="text"],input[type="email"],input[type="password"],input[type="url"]):focus{
  border-color:var(--ch-login-accent)!important;
  background:var(--ch-login-panel)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-login-accent) 18%,transparent)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input,textarea)::placeholder{
  color:var(--ch-login-muted)!important;
  opacity:.82!important;
}

/* Remember-me line: generous tap target, never inherit a generic widget button style. */
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(.login-remember,.pmpro_form_field-rememberme,.pmpro_form_field-remember_me){
  display:flex!important;
  align-items:center!important;
  min-height:32px!important;
  color:var(--ch-login-muted)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(.login-remember,.pmpro_form_field-rememberme,.pmpro_form_field-remember_me) label{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  margin:0!important;
  color:var(--ch-login-muted)!important;
  font-size:.86rem!important;
  font-weight:700!important;
  cursor:pointer!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  margin:0!important;
  accent-color:var(--ch-login-accent)!important;
}

body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(.login-submit,.pmpro_form_submit){
  margin-top:2px!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="submit"],button[type="submit"],.pmpro_btn){
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-height:48px!important;
  margin:0!important;
  padding:10px 16px!important;
  border:1px solid var(--ch-login-accent)!important;
  border-radius:13px!important;
  background:var(--ch-login-accent)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:.94rem!important;
  line-height:1!important;
  font-weight:850!important;
  text-decoration:none!important;
  box-shadow:0 8px 20px color-mix(in srgb,var(--ch-login-accent) 24%,transparent)!important;
  cursor:pointer!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="submit"],button[type="submit"],.pmpro_btn):hover{
  filter:brightness(1.04)!important;
  transform:translateY(-1px)!important;
  box-shadow:0 10px 24px color-mix(in srgb,var(--ch-login-accent) 30%,transparent)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="submit"],button[type="submit"],.pmpro_btn):focus-visible{
  outline:3px solid color-mix(in srgb,var(--ch-login-accent) 24%,transparent)!important;
  outline-offset:2px!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="submit"],button[type="submit"],.pmpro_btn):active{
  transform:translateY(0)!important;
}

/* Recovery/register/account links should feel secondary, not compete with Login. */
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(.pmpro_actions_nav,#nav,.login-links,.pmpro_login_links),
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) form ~ :is(p,div,ul){
  color:var(--ch-login-muted)!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) a{
  color:var(--ch-login-accent)!important;
  text-decoration:none!important;
  font-weight:750!important;
  text-underline-offset:3px!important;
}
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) a:hover,
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) a:focus-visible{
  text-decoration:underline!important;
}

/* PMPro/WP login error and notice states remain readable in either theme mode. */
body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(.pmpro_message,.pmpro_error,.login-error,.message,.error){
  box-sizing:border-box!important;
  margin:0 0 14px!important;
  padding:11px 12px!important;
  border-radius:11px!important;
  border:1px solid color-mix(in srgb,#dc2626 38%,var(--ch-login-border))!important;
  background:color-mix(in srgb,#dc2626 8%,var(--ch-login-panel))!important;
  color:var(--ch-login-text)!important;
  font-size:.86rem!important;
  line-height:1.45!important;
}

/* Explicit dark-mode surface reinforcement: provider defaults must never win. */
html[data-ch-theme-mode="dark"] body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]),
body.ch-theme-mode-dark :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]){
  --ch-login-panel:var(--ch-theme-surface,#121c2b);
  --ch-login-panel-soft:color-mix(in srgb,var(--ch-theme-surface,#121c2b) 82%,#000 18%);
  --ch-login-text:var(--ch-theme-text,#f5f7fb);
  --ch-login-muted:var(--ch-theme-muted,#b7c4d6);
  --ch-login-border:var(--ch-theme-border,#2a3a50);
}

@media(max-width:781px){
  body.ch-theme .ch-theme-widget.widget_pmpro_login,
  body.ch-theme .widget_pmpro_login,
  body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){
    width:100%!important;
    max-width:100%!important;
    padding:18px!important;
    border-radius:17px!important;
    box-shadow:0 10px 28px rgba(15,23,42,.10)!important;
  }
  body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) form{
    gap:12px!important;
  }
  body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="text"],input[type="email"],input[type="password"],input[type="url"]){
    height:46px!important;
    min-height:46px!important;
    border-radius:12px!important;
  }
  body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) :is(input[type="submit"],button[type="submit"],.pmpro_btn){
    min-height:46px!important;
    border-radius:12px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme :is(.widget_pmpro_login,.pmpro_login_wrap,.pmpro_login,[class*="pmpro"][class*="login"]) *{
    transition:none!important;
  }
}
/* =========================================================
   v0.4.209 — Local Loops mobile comment composer dock.
   Mobile only: hide Nav Bar while comments are open and keep one composer
   anchored to the bottom of the sheet. Reply mode replaces that composer.
   Desktop comment presentation remains unchanged.
   ========================================================= */
body.ch-theme .ch-loop-comments-composer-dock[hidden]{display:none!important}

@media(max-width:782px){
  /* Comments temporarily own the bottom edge; the Nav Bar returns as soon as
     the sheet closes. */
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-theme-community-bar--bottom{
    display:none!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loops-app{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
  }

  /* Preserve the split-view: video above, comments below, now using the space
     formerly occupied by the mobile Nav Bar. */
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loops-app.is-comments-open .ch-loops-feed{
    height:56dvh!important;
    max-height:56dvh!important;
  }
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loops-app.is-comments-open .ch-loop-card{
    height:56dvh!important;
    min-height:56dvh!important;
  }
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loop-comments-sheet{
    height:44dvh!important;
    max-height:44dvh!important;
    padding-bottom:0!important;
  }

  /* Existing comments are the only scrolling region. */
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:8px 10px 10px!important;
  }

  /* One persistent bottom composer. The normal comment form is moved here by
     Local Loops JS; reply mode temporarily swaps in the native reply form. */
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock{
    position:relative!important;
    z-index:8!important;
    flex:0 0 auto!important;
    display:block!important;
    width:100%!important;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;
    border-top:1px solid var(--ch-theme-border,#dbe3ec)!important;
    background:var(--ch-theme-surface,#fff)!important;
    box-shadow:0 -10px 28px rgba(2,6,23,.08)!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock[hidden]{display:none!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-comment-form,
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-js-reply-form{
    position:static!important;
    inset:auto!important;
    display:grid!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-comment-form[hidden],
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-js-reply-form[hidden]{display:none!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock :is(.ch-comment-textarea,.ch-reply-textarea){
    min-height:42px!important;
    max-height:82px!important;
    margin:0!important;
    resize:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock :is(.ch-comment-form-actions,.ch-reply-actions){
    margin-top:6px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-loop-reply-docked::before{
    content:'Replying to comment'!important;
    display:block!important;
    margin:0 0 5px!important;
    color:var(--ch-theme-muted,#64748b)!important;
    font-size:11px!important;
    font-weight:700!important;
    letter-spacing:.01em!important;
  }

  /* The original top-sticky rule is no longer used on mobile Loops. */
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-form{
    top:auto!important;
  }
}

html[data-ch-theme-mode="dark"] body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock,
body.ch-theme-dark.ch-loops-route .ch-loop-comments-composer-dock{
  background:var(--ch-theme-surface,#111827)!important;
  border-color:var(--ch-theme-border,#334155)!important;
}


/* =========================================================
   v0.4.210 — Loops interaction polish / admin-controlled presentation.
   Native snap only: no touch interception or post-scroll JS correction.
   ========================================================= */
body.ch-theme .ch-loop-action-rail,
body.ch-theme .ch-loop-menu-wrap,
body.ch-theme .ch-loops-app .ch-loop-sound,
body.ch-theme .ch-loops-app .ch-loop-fit-toggle{
  transition:opacity .22s ease,transform .22s ease!important;
}
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-action-rail,
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-menu-wrap,
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-sound,
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-fit-toggle{
  opacity:0!important;
  pointer-events:none!important;
}
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-action-rail{transform:translateX(8px)!important}
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-menu-wrap,
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-sound,
body.ch-theme .ch-loop-card.is-controls-hidden:not(.is-menu-open) .ch-loop-fit-toggle{transform:translateY(-4px)!important}
/* Creator identity and caption are intentionally never part of the fade group. */
body.ch-theme .ch-loop-meta{opacity:1!important;visibility:visible!important}

/* Reaction palette is a 4-column control on both desktop and mobile. */
body.ch-theme .ch-loop-reaction-picker{
  display:grid!important;
  grid-template-columns:repeat(4,40px)!important;
  grid-auto-rows:40px!important;
  max-width:202px!important;
}
body.ch-theme .ch-loop-reaction-picker[hidden]{display:none!important}

@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-feed{
    scroll-snap-type:y mandatory!important;
    scroll-behavior:smooth!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:auto!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-card{
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-reaction-picker{
    grid-template-columns:repeat(4,36px)!important;
    grid-auto-rows:36px!important;
    max-width:174px!important;
    gap:5px!important;
    padding:7px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-reaction-option{
    width:36px!important;min-width:36px!important;max-width:36px!important;
    height:36px!important;min-height:36px!important;max-height:36px!important;
  }
  /* Admin can deliberately return Loops to a fully immersive no-nav mode. */
  body.ch-theme.ch-loops-route.ch-loops-mobile-nav-disabled .ch-theme-community-bar--bottom{display:none!important}
  body.ch-theme.ch-loops-route.ch-loops-mobile-nav-disabled .ch-loops-app{
    inset:0!important;
    height:100dvh!important;
    max-height:100dvh!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-loop-action-rail,
  body.ch-theme .ch-loop-menu-wrap,
  body.ch-theme .ch-loops-app .ch-loop-sound,
  body.ch-theme .ch-loops-app .ch-loop-fit-toggle{transition:none!important}
}


/* =========================================================
   v0.4.211 — Loops compact/fading filters + mobile native-snap recovery.
   Keep creator/caption persistent while top/action controls fade together.
   ========================================================= */
body.ch-theme .ch-loops-tabs{
  transition:opacity .22s ease,transform .22s ease!important;
}
body.ch-theme .ch-loops-app.is-loop-controls-hidden .ch-loops-tabs{
  opacity:0!important;
  pointer-events:none!important;
  transform:translateX(-50%) translateY(-4px)!important;
}
body.ch-theme.ch-loops-route .ch-loops-tabs{
  gap:3px!important;
  padding:3px!important;
  border-radius:999px!important;
  background:rgba(2,6,23,.58)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(10px)!important;
}
body.ch-theme.ch-loops-route .ch-loops-tabs button{
  min-height:28px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
}
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-feed{
    scroll-behavior:auto!important;
    scroll-snap-type:y mandatory!important;
    overscroll-behavior-y:none!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-card{
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-tabs{
    top:max(8px,env(safe-area-inset-top))!important;
    max-width:calc(100vw - 112px)!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-tabs button{
    min-height:26px!important;
    padding:5px 8px!important;
    font-size:9.5px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-loops-tabs{transition:none!important}
}


/* =========================================================
   v0.4.212 — Loops desktop filter persistence + decisive mobile flip.
   ========================================================= */
@media(min-width:783px){
  body.ch-theme .ch-loops-app.is-loop-controls-hidden .ch-loops-tabs{
    opacity:1!important;
    pointer-events:auto!important;
    transform:translateX(-50%)!important;
  }
}
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-app.is-discrete-mobile-swipe .ch-loops-feed{
    touch-action:none!important;
    -webkit-overflow-scrolling:auto!important;
    scroll-behavior:auto!important;
    overscroll-behavior-y:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-app.is-discrete-mobile-swipe .ch-loop-card{
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
}


/* =========================================================
   v0.4.213 — Loops desktop filter stationary recovery.
   Desktop filters remain independently centered and never inherit
   the fading-control translation. Mobile fade behavior is unchanged.
   ========================================================= */
@media(min-width:783px){
  body.ch-theme.ch-loops-route .ch-loops-tabs,
  body.ch-theme.ch-loops-route .ch-loops-app.is-loop-controls-hidden .ch-loops-tabs{
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
  }
}


/* =========================================================
   v0.4.215 — Loops independent mobile filter reveal state.
   Filters can remain hidden during swipe navigation without changing
   the separate action-control reveal behavior. Desktop stays persistent.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme .ch-loops-app.is-loop-filters-hidden .ch-loops-tabs{
    opacity:0!important;
    pointer-events:none!important;
    transform:translateY(-4px)!important;
  }
}
@media(min-width:783px){
  body.ch-theme .ch-loops-app.is-loop-filters-hidden .ch-loops-tabs{
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
  }
}


/* =========================================================
   v0.4.215 — Loops mobile filter opacity-only transition.
   Filters remain stationary while hiding/revealing.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-tabs{
    transition:opacity .22s ease!important;
    transform:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loops-app.is-loop-controls-hidden .ch-loops-tabs,
  body.ch-theme.ch-loops-route .ch-loops-app.is-loop-filters-hidden .ch-loops-tabs{
    opacity:0!important;
    pointer-events:none!important;
    transform:none!important;
  }
}


/* =========================================================
   v0.4.216 — Loops mobile filter centering recovery.
   Keep the bar permanently centered with a static layout transform;
   hide/show remains opacity-only so there is no sliding motion.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loops-tabs,
  body.ch-theme.ch-loops-route .ch-loops-app.is-loop-controls-hidden .ch-loops-tabs,
  body.ch-theme.ch-loops-route .ch-loops-app.is-loop-filters-hidden .ch-loops-tabs{
    left:50%!important;
    right:auto!important;
    margin-left:0!important;
    margin-right:0!important;
    transform:translateX(-50%)!important;
    transition:opacity .22s ease!important;
  }
}


/* =========================================================
   v0.4.217 — Loops mobile comments taller.
   Preserve the approved bottom composer dock; give comments more vertical room
   while leaving a visible playback area above.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loops-app.is-comments-open .ch-loops-feed{
    height:48dvh!important;
    max-height:48dvh!important;
  }
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loops-app.is-comments-open .ch-loop-card{
    height:48dvh!important;
    min-height:48dvh!important;
  }
  body.ch-theme.ch-loops-route.ch-loops-comments-open .ch-loop-comments-sheet{
    height:52dvh!important;
    max-height:52dvh!important;
  }
}

/* =========================================================
   v0.4.218 — Loops mobile comment reaction gesture recovery.
   The comment sheet is its own scroll surface; reaction long-press must own
   the touch on the reaction trigger instead of being cancelled by sheet pan.
   ========================================================= */
@media(max-width:782px){
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-reaction-wrap{
    overflow:visible!important;
    position:relative!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-reaction-trigger{
    touch-action:none!important;
    -webkit-user-select:none!important;
    user-select:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-comment-actions{
    overflow:visible!important;
  }
}

/* =========================================================
   v0.4.219 — Loops desktop comment dock parity.
   Use the approved mobile pattern on desktop too: comments scroll above one
   persistent bottom composer, and reply mode temporarily replaces it.
   ========================================================= */
@media(min-width:783px){
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:10px 12px!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock{
    position:relative!important;
    z-index:8!important;
    flex:0 0 auto!important;
    display:block!important;
    width:100%!important;
    padding:10px 12px 12px!important;
    border-top:1px solid var(--ch-theme-border,#dbe3ec)!important;
    background:var(--ch-theme-surface,#fff)!important;
    box-shadow:0 -10px 28px rgba(2,6,23,.08)!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock[hidden]{display:none!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-comment-form,
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-js-reply-form{
    position:static!important;
    inset:auto!important;
    display:grid!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-comment-form[hidden],
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-js-reply-form[hidden]{display:none!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock :is(.ch-comment-textarea,.ch-reply-textarea){
    min-height:48px!important;
    max-height:100px!important;
    margin:0!important;
    resize:vertical!important;
  }
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock :is(.ch-comment-form-actions,.ch-reply-actions){margin-top:7px!important}
  body.ch-theme.ch-loops-route .ch-loop-comments-composer-dock .ch-loop-reply-docked::before{
    content:'Replying to comment'!important;
    display:block!important;
    margin:0 0 6px!important;
    color:var(--ch-theme-muted,#64748b)!important;
    font-size:11px!important;
    font-weight:700!important;
  }
  /* Neutralize the original desktop sticky-top composer rule after JS moves it
     into the dock. */
  body.ch-theme.ch-loops-route .ch-loop-comments-sheet .ch-loop-comments-composer-dock .ch-comment-form{
    top:auto!important;
  }
}

/* v0.4.220 — Forums Transformation Phase 1 presentation */
.ch-theme .ch-forums-page{--ch-forum-surface:var(--ch-surface,#fff);--ch-forum-muted:var(--ch-text-muted,#667085);display:grid;gap:16px}
.ch-theme .ch-forums-page-header{border:1px solid color-mix(in srgb,var(--ch-border,#d8e0ea) 86%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--ch-surface,#fff) 96%,var(--ch-accent,#2563eb) 4%),var(--ch-surface,#fff));box-shadow:0 15px 34px rgba(18,38,63,.08);border-radius:20px}
.ch-theme .ch-forum-row,.ch-theme .ch-forum-topic-row,.ch-theme .ch-forum-post-card,.ch-theme .ch-forum-composer{border-radius:18px!important;border-color:color-mix(in srgb,var(--ch-border,#dbe3ec) 88%,transparent)!important;box-shadow:0 10px 28px rgba(20,39,63,.065);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.ch-theme .ch-forum-row:hover,.ch-theme .ch-forum-topic-row:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(20,39,63,.11);border-color:color-mix(in srgb,var(--ch-accent,#2563eb) 35%,var(--ch-border,#dbe3ec))!important}
.ch-theme .ch-forum-post-card{position:relative;overflow:visible}
.ch-theme .ch-forum-post-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.ch-theme .ch-forum-post-avatar{flex:0 0 auto;position:relative;isolation:isolate}
.ch-theme .ch-forum-post-avatar img{width:48px;height:48px;object-fit:cover}
.ch-theme .ch-forum-link-preview .ch-link-preview-card{border-radius:15px;overflow:hidden;border:1px solid color-mix(in srgb,var(--ch-border,#dbe3ec) 90%,transparent);background:color-mix(in srgb,var(--ch-surface,#fff) 97%,var(--ch-accent,#2563eb) 3%);box-shadow:0 10px 24px rgba(17,35,57,.08)}
.ch-theme .ch-forum-link-preview .ch-link-preview-image{min-width:150px}
.ch-theme .ch-forum-link-preview .ch-link-preview-image img{width:100%;height:100%;object-fit:cover}
.ch-theme .ch-forum-original-post{background:color-mix(in srgb,var(--ch-accent,#2563eb) 10%,var(--ch-surface,#fff));color:var(--ch-accent,#2563eb)}
.ch-theme .ch-forum-topic-copy strong,.ch-theme .ch-forum-row-copy strong{font-size:1rem;line-height:1.3}
.ch-theme .ch-forum-topic-meta{align-self:center;padding:7px 10px;border-radius:12px;background:color-mix(in srgb,var(--ch-surface,#fff) 94%,var(--ch-accent,#2563eb) 6%)}
.ch-theme .ch-forum-form-actions button{box-shadow:0 8px 20px color-mix(in srgb,var(--ch-accent,#2563eb) 22%,transparent);transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}
.ch-theme .ch-forum-form-actions button:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 12px 26px color-mix(in srgb,var(--ch-accent,#2563eb) 28%,transparent)}
html[data-ch-theme-mode="dark"] .ch-theme .ch-forums-page-header,body.ch-theme-mode-dark .ch-theme .ch-forums-page-header{background:linear-gradient(135deg,#152235,#111b2a);border-color:#31445b;box-shadow:0 18px 40px rgba(0,0,0,.24)}
html[data-ch-theme-mode="dark"] .ch-theme .ch-forum-row,html[data-ch-theme-mode="dark"] .ch-theme .ch-forum-topic-row,html[data-ch-theme-mode="dark"] .ch-theme .ch-forum-post-card,html[data-ch-theme-mode="dark"] .ch-theme .ch-forum-composer,body.ch-theme-mode-dark .ch-theme .ch-forum-row,body.ch-theme-mode-dark .ch-theme .ch-forum-topic-row,body.ch-theme-mode-dark .ch-theme .ch-forum-post-card,body.ch-theme-mode-dark .ch-theme .ch-forum-composer{background:#121d2c!important;border-color:#30435a!important;box-shadow:0 12px 30px rgba(0,0,0,.22)}
html[data-ch-theme-mode="dark"] .ch-theme .ch-forum-topic-meta,body.ch-theme-mode-dark .ch-theme .ch-forum-topic-meta{background:#18263a}
@media(max-width:700px){.ch-theme .ch-forums-page{gap:12px}.ch-theme .ch-forums-page-header,.ch-theme .ch-forum-row,.ch-theme .ch-forum-topic-row,.ch-theme .ch-forum-post-card,.ch-theme .ch-forum-composer{border-radius:15px!important}.ch-theme .ch-forum-link-preview .ch-link-preview-card{display:grid}.ch-theme .ch-forum-link-preview .ch-link-preview-image{width:100%;height:150px}.ch-theme .ch-forum-topic-meta{min-width:72px}}
@media(prefers-reduced-motion:reduce){.ch-theme .ch-forum-row,.ch-theme .ch-forum-topic-row,.ch-theme .ch-forum-form-actions button{transition:none!important;transform:none!important}}


/* =========================================================
   v0.4.221 — Forums reaction overflow + dual-theme color audit.
   - Reply reaction pickers open downward and own the active stacking layer.
   - Forum surfaces use explicit semantic foreground/surface tokens in both modes.
   - Community Save terminology remains untouched; Forums use Bookmark in Core.
   ========================================================= */
body.ch-theme .ch-forums-page{
  --ch-forum-bg:#ffffff;
  --ch-forum-bg-soft:#f7f9fc;
  --ch-forum-text:#172033;
  --ch-forum-text-strong:#0f172a;
  --ch-forum-muted:#5f6f82;
  --ch-forum-border:#dbe3ec;
  --ch-forum-link:var(--ch-theme-accent,#1769d2);
}
body.ch-theme .ch-forums-page,
body.ch-theme .ch-forums-page :is(.ch-forums-page-header,.ch-forum-row,.ch-forum-topic-row,.ch-forum-post-card,.ch-forum-composer,.ch-forums-empty,.ch-forum-login-note,.ch-group-forum-intro,.ch-group-forum-recent,.ch-group-forum-stats span){
  color:var(--ch-forum-text)!important;
}
body.ch-theme .ch-forums-page :is(h1,h2,h3,h4,h5,h6,.ch-forum-row-copy strong,.ch-forum-topic-copy strong,.ch-forum-topic-meta strong,.ch-forum-post-author strong,.ch-forum-composer-heading strong,.ch-forum-row-stats strong,.ch-forum-header-stats strong){
  color:var(--ch-forum-text-strong)!important;
}
body.ch-theme .ch-forums-page :is(.ch-forums-page-header p,.ch-forums-eyebrow,.ch-forum-row-copy span,.ch-forum-row-copy small,.ch-forum-topic-copy span,.ch-forum-topic-meta,.ch-forum-topic-meta span,.ch-forum-topic-meta small,.ch-forum-post-author span,.ch-forum-form-status,.ch-forums-breadcrumb,.ch-forum-login-note,.ch-forums-empty p,.ch-forum-row-stats span,.ch-forum-header-stats span,.ch-group-forum-recent span,.ch-forum-explicit-toggle small){
  color:var(--ch-forum-muted)!important;
}
body.ch-theme .ch-forums-page :is(.ch-forum-post-content,.ch-forum-post-content p,.ch-forum-post-content li,.ch-forum-composer label,.ch-forum-explicit-toggle){
  color:var(--ch-forum-text)!important;
}
body.ch-theme .ch-forums-page a:not(.ch-group-primary-action):not(.ch-forum-form-actions button){
  color:inherit;
}
body.ch-theme .ch-forums-page :is(.ch-forum-post-content a,.ch-forums-breadcrumb a,.ch-forum-group-link,.ch-forum-children a){
  color:var(--ch-forum-link)!important;
}
body.ch-theme .ch-forums-page :is(.ch-forums-page-header,.ch-forum-topic-row,.ch-forum-post-card,.ch-forum-composer,.ch-forums-empty,.ch-forum-login-note,.ch-group-forum-intro,.ch-group-forum-recent,.ch-group-forum-stats span){
  background-color:var(--ch-forum-bg)!important;
  border-color:var(--ch-forum-border)!important;
}
body.ch-theme .ch-forums-page :is(.ch-forum-topic-meta,.ch-forum-row-icon,.ch-forum-explicit-toggle){
  background-color:var(--ch-forum-bg-soft)!important;
  border-color:var(--ch-forum-border)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer :is(input,textarea,select){
  background:#fff!important;
  color:#172033!important;
  border-color:#cfd9e5!important;
  caret-color:#172033!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer :is(input,textarea)::placeholder{color:#7a8798!important;opacity:1!important}
body.ch-theme .ch-forums-page .ch-forum-action-button,
body.ch-theme .ch-forums-page .ch-forum-react-button,
body.ch-theme .ch-forums-page .ch-forum-mini-action{
  background:#fff!important;
  color:#26364a!important;
  border-color:#d7e0ea!important;
}
body.ch-theme .ch-forums-page .ch-forum-action-button:hover,
body.ch-theme .ch-forums-page .ch-forum-react-button:hover,
body.ch-theme .ch-forums-page .ch-forum-mini-action:hover{
  background:#f4f8fd!important;
  color:#172033!important;
}
body.ch-theme .ch-forums-page .ch-forum-action-button.is-active,
body.ch-theme .ch-forums-page .ch-forum-react-button.is-active{
  background:#edf5ff!important;
  color:#1459a6!important;
  border-color:#8fb4ef!important;
}
body.ch-theme .ch-forums-page .ch-forum-action-button.is-danger{color:#a62b2b!important}

/* Reaction picker recovery: Skin/card layers may create their own stacking context. */
body.ch-theme .ch-forums-page .ch-forum-post-card.is-reaction-picker-open{
  overflow:visible!important;
  z-index:80!important;
  isolation:isolate!important;
}
body.ch-theme .ch-forums-page .ch-topic-thread,
body.ch-theme .ch-forums-page .ch-forum-post-engagement,
body.ch-theme .ch-forums-page .ch-forum-reaction-control{
  overflow:visible!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-card--reply .ch-forum-reaction-picker{
  top:calc(100% + 8px)!important;
  bottom:auto!important;
  left:0!important;
  z-index:9999!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page,
body.ch-theme-mode-dark .ch-forums-page,
body.ch-theme-dark-mode .ch-forums-page{
  --ch-forum-bg:#121d2c;
  --ch-forum-bg-soft:#18263a;
  --ch-forum-text:#e7eef8;
  --ch-forum-text-strong:#f8fbff;
  --ch-forum-muted:#afbdd0;
  --ch-forum-border:#30435a;
  --ch-forum-link:#8fc5ff;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page :is(.ch-forums-page-header,.ch-forum-topic-row,.ch-forum-post-card,.ch-forum-composer,.ch-forums-empty,.ch-forum-login-note,.ch-group-forum-intro,.ch-group-forum-recent,.ch-group-forum-stats span),
body.ch-theme-mode-dark .ch-forums-page :is(.ch-forums-page-header,.ch-forum-topic-row,.ch-forum-post-card,.ch-forum-composer,.ch-forums-empty,.ch-forum-login-note,.ch-group-forum-intro,.ch-group-forum-recent,.ch-group-forum-stats span){
  background-color:var(--ch-forum-bg)!important;
  border-color:var(--ch-forum-border)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page :is(.ch-forum-topic-meta,.ch-forum-row-icon,.ch-forum-explicit-toggle),
body.ch-theme-mode-dark .ch-forums-page :is(.ch-forum-topic-meta,.ch-forum-row-icon,.ch-forum-explicit-toggle){
  background-color:var(--ch-forum-bg-soft)!important;
  border-color:var(--ch-forum-border)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer :is(input,textarea,select),
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer :is(input,textarea,select){
  background:#0e1825!important;
  color:#f1f6fc!important;
  border-color:#38506b!important;
  caret-color:#f1f6fc!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer :is(input,textarea)::placeholder,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer :is(input,textarea)::placeholder{color:#91a3b8!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page :is(.ch-forum-action-button,.ch-forum-react-button,.ch-forum-mini-action),
body.ch-theme-mode-dark .ch-forums-page :is(.ch-forum-action-button,.ch-forum-react-button,.ch-forum-mini-action){
  background:#152235!important;
  color:#eaf2fc!important;
  border-color:#33475f!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page :is(.ch-forum-action-button,.ch-forum-react-button,.ch-forum-mini-action):hover,
body.ch-theme-mode-dark .ch-forums-page :is(.ch-forum-action-button,.ch-forum-react-button,.ch-forum-mini-action):hover{
  background:#1a2a40!important;
  color:#fff!important;
  border-color:#526d8d!important;
}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-post-card--reply .ch-forum-reaction-picker{
    left:0!important;
    right:auto!important;
    max-width:min(230px,calc(100vw - 34px))!important;
  }
}


/* v0.4.222 — Forum reaction picker body-portal recovery.
   The picker is temporarily moved to <body> while open so Forum Reply cards,
   Forum Skins, and nested thread wrappers cannot clip it on desktop or mobile. */
body > .ch-forum-reaction-picker.is-forum-reaction-portal{
  position:fixed!important;
  right:auto!important;
  bottom:auto!important;
  z-index:2147483000!important;
  margin:0!important;
  transform:none!important;
  width:max-content!important;
  max-width:calc(100vw - 20px)!important;
  overflow:visible!important;
  pointer-events:auto!important;
}
body > .ch-forum-reaction-picker.is-forum-reaction-portal[hidden]{display:none!important}
@media(max-width:700px){
  body > .ch-forum-reaction-picker.is-forum-reaction-portal{
    grid-template-columns:repeat(4,40px)!important;
    max-width:calc(100vw - 20px)!important;
  }
}

/* v0.4.223 — Forums Phase 2 interaction polish */
body.ch-theme .ch-forums-page .ch-forum-post-menu{margin-left:auto!important;flex:0 0 auto!important}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle{box-shadow:0 4px 14px rgba(18,35,54,.08);transition:background .15s ease,border-color .15s ease,transform .15s ease}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ch-accent,#2f7df4) 45%,var(--ch-border,#dbe3ec))}
@media(max-width:700px){body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown{left:12px!important;right:12px!important;width:auto!important;max-width:none!important;border-radius:17px!important}}

/* v0.4.224 — Forums Phase 2 overflow-menu presentation refinement */
body.ch-theme .ch-forums-page .ch-forum-post-menu{
  position:relative!important;
  z-index:45!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle{
  position:relative!important;
  display:inline-grid!important;
  place-items:center!important;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  padding:0!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 88%,transparent)!important;
  border-radius:11px!important;
  background:color-mix(in srgb,var(--ch-theme-surface,#fff) 92%,var(--ch-theme-surface-soft,#f5f7fa) 8%)!important;
  color:transparent!important;
  font-size:0!important;
  line-height:1!important;
  letter-spacing:0!important;
  box-shadow:0 2px 8px rgba(15,23,42,.06)!important;
  transform:none!important;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
  overflow:hidden!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle::before{
  content:""!important;
  width:4px!important;
  height:4px!important;
  border-radius:50%!important;
  background:var(--ch-theme-text-muted,#64748b)!important;
  box-shadow:0 -6px 0 var(--ch-theme-text-muted,#64748b),0 6px 0 var(--ch-theme-text-muted,#64748b)!important;
  opacity:.94!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle:hover,
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle:focus-visible,
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle[aria-expanded="true"]{
  background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 8%,var(--ch-theme-surface,#fff) 92%)!important;
  border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 42%,var(--ch-theme-border,#dbe3ec))!important;
  box-shadow:0 5px 16px color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 12%,transparent)!important;
  transform:translateY(-1px)!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle:focus-visible{
  outline:2px solid color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 55%,transparent)!important;
  outline-offset:2px!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown{
  min-width:188px!important;
  padding:7px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 94%,transparent)!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--ch-theme-surface,#fff) 97%,transparent)!important;
  box-shadow:0 18px 44px rgba(15,23,42,.16)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a){
  min-height:40px!important;
  gap:9px!important;
  padding:9px 11px!important;
  border-radius:9px!important;
  color:var(--ch-theme-text,#172033)!important;
  font-size:13px!important;
  font-weight:750!important;
  line-height:1.25!important;
  transition:background .14s ease,color .14s ease,transform .14s ease!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a):hover,
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a):focus-visible{
  background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 8%,var(--ch-theme-surface-soft,#f5f7fa) 92%)!important;
  color:var(--ch-theme-text,#172033)!important;
  transform:translateX(1px)!important;
  outline:none!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown .is-danger{
  margin-top:5px!important;
  border-top:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:0 0 9px 9px!important;
  padding-top:11px!important;
  color:#b42318!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown .is-danger:hover,
body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown .is-danger:focus-visible{
  background:rgba(180,35,24,.075)!important;
  color:#9f1f16!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-post-menu-toggle,
body.ch-theme-dark .ch-forums-page .ch-forum-post-menu-toggle{
  background:color-mix(in srgb,var(--ch-theme-surface,#111d2c) 94%,#000 6%)!important;
  border-color:var(--ch-theme-border,#33475f)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-post-menu-dropdown,
body.ch-theme-dark .ch-forums-page .ch-forum-post-menu-dropdown{
  background:color-mix(in srgb,var(--ch-theme-surface,#111d2c) 97%,#000 3%)!important;
  border-color:var(--ch-theme-border,#33475f)!important;
  box-shadow:0 20px 48px rgba(0,0,0,.38)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a),
body.ch-theme-mode-dark .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a),
body.ch-theme-dark .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a){
  color:var(--ch-theme-text,#edf4ff)!important;
}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
    border-radius:12px!important;
  }
  body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown{
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:none!important;
    padding:8px!important;
    border-radius:18px!important;
  }
  body.ch-theme .ch-forums-page .ch-forum-post-menu-dropdown :is(button,a){
    min-height:48px!important;
    padding:11px 13px!important;
    border-radius:11px!important;
    font-size:14px!important;
  }
}

/* Forums Phase 3 — discovery, momentum, and overflow interaction */
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle{
  position:relative!important;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  padding:0!important;
  font-size:0!important;
  line-height:0!important;
  letter-spacing:0!important;
  text-indent:-9999px!important;
  overflow:hidden!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle::before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:4px!important;
  height:4px!important;
  border-radius:50%!important;
  background:currentColor!important;
  transform:translate(-50%,-50%)!important;
  box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor!important;
}
@media (hover:hover) and (pointer:fine){
  body.ch-theme .ch-forums-page .ch-forum-post-menu-toggle{cursor:default!important}
  body.ch-theme .ch-forums-page .ch-forum-post-menu.is-menu-open .ch-forum-post-menu-dropdown{display:block!important}
}

body.ch-theme .ch-forums-phase3-hero{overflow:hidden;position:relative;padding:26px!important}
body.ch-theme .ch-forums-phase3-hero::before{
  content:"";position:absolute;inset:auto -80px -110px auto;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--ch-accent,#2f7df4) 20%,transparent),transparent 68%);pointer-events:none
}
body.ch-theme .ch-forums-pulse-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
body.ch-theme .ch-forums-pulse-stats>span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--ch-border,#dbe3ec);border-radius:999px;background:color-mix(in srgb,var(--ch-surface,#fff) 88%,var(--ch-accent,#2f7df4) 12%);font-size:.76rem;color:var(--ch-text-muted,#64748b)}
body.ch-theme .ch-forums-pulse-stats strong{font-size:.84rem;color:var(--ch-text,#182433)}
body.ch-theme .ch-forums-pulse-stats .is-live i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.38);animation:chForumLivePulse 1.8s infinite}
@keyframes chForumLivePulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.38)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

body.ch-theme .ch-forum-discovery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 20px}
body.ch-theme .ch-forum-discovery-card{position:relative;overflow:hidden;border:1px solid var(--ch-border,#dbe3ec);border-radius:18px;background:var(--ch-surface,#fff);box-shadow:0 12px 28px rgba(18,38,63,.07)}
body.ch-theme .ch-forum-discovery-card>header{padding:15px 15px 11px;border-bottom:1px solid color-mix(in srgb,var(--ch-border,#dbe3ec) 72%,transparent)}
body.ch-theme .ch-forum-discovery-card>header span{display:block;margin-bottom:2px;text-transform:uppercase;letter-spacing:.08em;font-size:.63rem;font-weight:900;color:var(--ch-text-muted,#64748b)}
body.ch-theme .ch-forum-discovery-card>header h2{margin:0!important;font-size:1rem!important;color:var(--ch-text,#182433)!important}
body.ch-theme .ch-forum-discovery-card.is-hot>header{background:linear-gradient(135deg,rgba(249,115,22,.08),rgba(239,68,68,.035))}
body.ch-theme .ch-forum-discovery-card.is-fresh>header{background:linear-gradient(135deg,rgba(47,125,244,.09),rgba(14,165,233,.035))}
body.ch-theme .ch-forum-discovery-card.is-unanswered>header{background:linear-gradient(135deg,rgba(168,85,247,.08),rgba(236,72,153,.03))}
body.ch-theme .ch-forum-discovery-list{display:grid;padding:5px}
body.ch-theme .ch-forum-discovery-topic{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border-radius:12px;text-decoration:none!important;color:inherit!important;transition:background .16s ease,transform .16s ease}
body.ch-theme .ch-forum-discovery-topic:hover{background:color-mix(in srgb,var(--ch-accent,#2f7df4) 8%,transparent);transform:translateY(-1px)}
body.ch-theme .ch-forum-discovery-avatar img{display:block;width:38px;height:38px;object-fit:cover;border-radius:50%}
body.ch-theme .ch-forum-discovery-copy{display:grid;gap:2px;min-width:0}
body.ch-theme .ch-forum-discovery-copy strong{font-size:.82rem;line-height:1.25;color:var(--ch-text,#182433);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ch-theme .ch-forum-discovery-copy small{font-size:.67rem;color:var(--ch-text-muted,#64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ch-theme .ch-forum-discovery-stats{display:grid;gap:2px;justify-items:end;font-size:.64rem;color:var(--ch-text-muted,#64748b)}
body.ch-theme .ch-forum-discovery-empty{margin:0;padding:18px 14px;color:var(--ch-text-muted,#64748b);font-size:.78rem}
body.ch-theme .ch-forum-directory-heading{margin-top:2px}

body.ch-theme .ch-forum-topic-row{position:relative;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.ch-theme .ch-forum-topic-row:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(18,38,63,.08)}
body.ch-theme .ch-forum-momentum-badge.is-hot{animation:chForumHotBreath 2.2s ease-in-out infinite}
@keyframes chForumHotBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
body.ch-theme .is-new-forum-entry{animation:chForumNewEntry .72s cubic-bezier(.22,.8,.25,1)}
@keyframes chForumNewEntry{0%{opacity:0;transform:translateY(14px) scale(.985);box-shadow:0 0 0 2px color-mix(in srgb,var(--ch-accent,#2f7df4) 25%,transparent)}65%{opacity:1;transform:translateY(-2px) scale(1.004)}100%{opacity:1;transform:none;box-shadow:none}}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-discovery-card,
body.ch-theme-mode-dark .ch-forum-discovery-card,
body.ch-theme-dark .ch-forum-discovery-card{background:#121e2e;border-color:#31445b;box-shadow:0 14px 34px rgba(0,0,0,.22)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-discovery-card>header,
body.ch-theme-mode-dark .ch-forum-discovery-card>header,
body.ch-theme-dark .ch-forum-discovery-card>header{border-bottom-color:#2b3d52}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-discovery-copy strong,
body.ch-theme-mode-dark .ch-forum-discovery-copy strong,
body.ch-theme-dark .ch-forum-discovery-copy strong,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-discovery-card>header h2,
body.ch-theme-mode-dark .ch-forum-discovery-card>header h2,
body.ch-theme-dark .ch-forum-discovery-card>header h2{color:#eef5ff!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-pulse-stats>span,
body.ch-theme-mode-dark .ch-forums-pulse-stats>span,
body.ch-theme-dark .ch-forums-pulse-stats>span{background:#162539;border-color:#33475f;color:#b8c8dc}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-pulse-stats strong,
body.ch-theme-mode-dark .ch-forums-pulse-stats strong,
body.ch-theme-dark .ch-forums-pulse-stats strong{color:#f3f7fd}

@media(max-width:980px){body.ch-theme .ch-forum-discovery-grid{grid-template-columns:1fr 1fr}body.ch-theme .ch-forum-discovery-card.is-unanswered{grid-column:1/-1}}
@media(max-width:700px){
  body.ch-theme .ch-forums-phase3-hero{padding:19px!important}
  body.ch-theme .ch-forum-discovery-grid{grid-template-columns:1fr;gap:10px}
  body.ch-theme .ch-forum-discovery-card.is-unanswered{grid-column:auto}
  body.ch-theme .ch-forum-discovery-topic{grid-template-columns:36px minmax(0,1fr) auto;padding:9px}
  body.ch-theme .ch-forum-discovery-avatar img{width:36px;height:36px}
  body.ch-theme .ch-forum-post-menu-toggle{width:36px!important;height:36px!important;min-width:36px!important}
}
@media(prefers-reduced-motion:reduce){body.ch-theme .ch-forums-pulse-stats .is-live i,body.ch-theme .ch-forum-momentum-badge.is-hot,body.ch-theme .is-new-forum-entry{animation:none!important}}

/* v0.4.226 — Forums Phase 4: portal-safe overflow menus + return hooks */
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal{
  position:fixed!important;
  z-index:2147482500!important;
  display:grid!important;
  min-width:190px!important;
  padding:7px!important;
  border:1px solid #d7e0ea!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.985)!important;
  color:#182433!important;
  box-shadow:0 20px 50px rgba(15,23,42,.22)!important;
  backdrop-filter:blur(16px)!important;
  overflow:visible!important;
}
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal[hidden]{display:none!important}
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a){
  display:flex!important;align-items:center!important;width:100%!important;min-height:40px!important;
  padding:9px 11px!important;border:0!important;border-radius:9px!important;background:transparent!important;
  color:#1d2a3a!important;text-decoration:none!important;text-align:left!important;font:inherit!important;font-weight:750!important;
  cursor:pointer!important;transition:background .14s ease,color .14s ease!important;
}
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):hover,
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):focus-visible{background:#edf4fc!important;color:#0f1c2b!important}
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal .is-danger{margin-top:4px!important;border-top:1px solid #e0e7ef!important;border-radius:0 0 9px 9px!important;color:#b42318!important}
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal .is-danger:hover,
body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal .is-danger:focus-visible{background:#fff0ef!important;color:#9f1f16!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal,
body.ch-theme-mode-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal,
body.ch-theme-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal{
  background:rgba(16,27,42,.985)!important;border-color:#33475f!important;color:#edf4ff!important;box-shadow:0 22px 52px rgba(0,0,0,.44)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a),
body.ch-theme-mode-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a),
body.ch-theme-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a){color:#edf4ff!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):focus-visible,
body.ch-theme-mode-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):hover,
body.ch-theme-mode-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):focus-visible,
body.ch-theme-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):hover,
body.ch-theme-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a):focus-visible{background:#20324a!important;color:#fff!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal .is-danger,
body.ch-theme-mode-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal .is-danger,
body.ch-theme-dark .ch-forum-post-menu-dropdown.is-forum-menu-portal .is-danger{border-top-color:#33475f!important;color:#ff9c9c!important}
@media(max-width:700px){body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal{min-width:220px!important;max-width:calc(100vw - 24px)!important;padding:8px!important;border-radius:17px!important}body.ch-theme .ch-forum-post-menu-dropdown.is-forum-menu-portal :is(button,a){min-height:46px!important;padding:11px 13px!important;font-size:.94rem!important;border-radius:11px!important}}

/* Personalized return hooks */
body.ch-theme .ch-forum-discovery-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important}
body.ch-theme .ch-forum-discovery-card.is-continue>header{background:linear-gradient(135deg,rgba(16,185,129,.10),rgba(47,125,244,.04))!important}
body.ch-theme .ch-forum-unread-pill,
body.ch-theme .ch-forum-unread-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:20px!important;padding:2px 7px!important;border-radius:999px!important;background:color-mix(in srgb,var(--ch-accent,#2f7df4) 15%,#fff 85%)!important;color:color-mix(in srgb,var(--ch-accent,#2f7df4) 84%,#0f172a 16%)!important;border:1px solid color-mix(in srgb,var(--ch-accent,#2f7df4) 24%,transparent)!important;font-style:normal!important;font-size:.64rem!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important}
body.ch-theme .ch-forum-topic-title-line .ch-forum-unread-badge{margin-left:5px!important}
body.ch-theme .ch-forum-return-banner{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0 0 14px!important;padding:10px 13px!important;border:1px solid color-mix(in srgb,var(--ch-accent,#2f7df4) 25%,var(--ch-border,#dbe3ec))!important;border-radius:14px!important;background:color-mix(in srgb,var(--ch-surface,#fff) 88%,var(--ch-accent,#2f7df4) 12%)!important;color:var(--ch-text,#182433)!important;box-shadow:0 8px 20px rgba(18,38,63,.05)!important}
body.ch-theme .ch-forum-return-banner a{display:inline-flex!important;align-items:center!important;min-height:34px!important;padding:6px 10px!important;border-radius:999px!important;background:var(--ch-accent,#2f7df4)!important;color:#fff!important;text-decoration:none!important;font-size:.72rem!important;font-weight:900!important;white-space:nowrap!important}
body.ch-theme .ch-forum-post-card[id]{scroll-margin-top:110px!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-unread-pill,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-unread-badge,
body.ch-theme-mode-dark .ch-forum-unread-pill,body.ch-theme-mode-dark .ch-forum-unread-badge,
body.ch-theme-dark .ch-forum-unread-pill,body.ch-theme-dark .ch-forum-unread-badge{background:#173758!important;color:#b9dcff!important;border-color:#315c86!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-return-banner,
body.ch-theme-mode-dark .ch-forum-return-banner,body.ch-theme-dark .ch-forum-return-banner{background:#16283d!important;border-color:#315477!important;color:#eef5ff!important}
@media(max-width:700px){body.ch-theme .ch-forum-return-banner{align-items:flex-start!important;flex-direction:column!important}body.ch-theme .ch-forum-return-banner a{width:100%!important;justify-content:center!important}.ch-forum-discovery-grid{grid-template-columns:1fr!important}}
\n\n/* v0.4.227 — Forums Phase 5 participation + permanent overflow icon recovery */\nbody.ch-theme .ch-forums-page .ch-forum-post-menu-toggle{\n  display:grid!important;place-items:center!important;text-indent:0!important;color:var(--ch-theme-text-muted,#64748b)!important;\n}\nbody.ch-theme .ch-forums-page .ch-forum-post-menu-toggle::before{content:none!important;display:none!important;box-shadow:none!important}\nbody.ch-theme .ch-forums-page .ch-forum-kebab{\n  display:grid!important;grid-template-rows:repeat(3,4px)!important;align-content:center!important;justify-items:center!important;gap:3px!important;\n  width:14px!important;height:22px!important;pointer-events:none!important;\n}\nbody.ch-theme .ch-forums-page .ch-forum-kebab i{display:block!important;width:4px!important;height:4px!important;border-radius:999px!important;background:currentColor!important;margin:0!important;padding:0!important}\n\nbody.ch-theme .ch-forums-page .ch-forum-composer-editor{\n  border:1px solid var(--ch-theme-border,#dbe3ec);border-radius:16px;background:var(--ch-theme-surface,#fff);overflow:hidden;\n  box-shadow:0 7px 20px rgba(15,23,42,.045);\n}\nbody.ch-theme .ch-forums-page .ch-forum-composer-toolbar{\n  display:flex;align-items:center;gap:6px;padding:8px 9px;border-bottom:1px solid var(--ch-theme-border,#dbe3ec);\n  background:color-mix(in srgb,var(--ch-theme-surface-soft,#f5f7fa) 76%,var(--ch-theme-surface,#fff) 24%);\n}\nbody.ch-theme .ch-forums-page .ch-forum-composer-toolbar button{\n  width:34px;height:32px;min-width:34px;padding:0!important;border:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 85%,transparent)!important;\n  border-radius:9px!important;background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#172033)!important;display:grid!important;place-items:center!important;\n  font-size:13px!important;line-height:1!important;box-shadow:none!important;transition:background .14s ease,border-color .14s ease,transform .14s ease!important;\n}\nbody.ch-theme .ch-forums-page .ch-forum-composer-toolbar button:hover,\nbody.ch-theme .ch-forums-page .ch-forum-composer-toolbar button:focus-visible{\n  background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 9%,var(--ch-theme-surface,#fff) 91%)!important;\n  border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 42%,var(--ch-theme-border,#dbe3ec))!important;transform:translateY(-1px)!important;\n}\nbody.ch-theme .ch-forums-page .ch-forum-composer-editor>label{margin:0!important;display:block!important}\nbody.ch-theme .ch-forums-page .ch-forum-composer-editor textarea{\n  width:100%!important;min-height:150px!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;resize:vertical!important;\n  background:var(--ch-theme-surface,#fff)!important;color:var(--ch-theme-text,#172033)!important;padding:14px 15px!important;\n}\nbody.ch-theme .ch-forums-page .ch-forum-composer-editor textarea:focus{outline:none!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 34%,transparent)!important}\nbody.ch-theme .ch-forums-page .ch-forum-composer-meta{\n  display:flex;justify-content:space-between;gap:12px;padding:7px 11px;border-top:1px solid var(--ch-theme-border,#dbe3ec);\n  background:color-mix(in srgb,var(--ch-theme-surface-soft,#f5f7fa) 68%,var(--ch-theme-surface,#fff) 32%);color:var(--ch-theme-text-muted,#64748b);font-size:11px;font-weight:700;\n}\nbody.ch-theme .ch-forums-page .ch-forum-action-button[data-ch-forum-toggle="subscription"].is-active .ch-forum-action-icon{animation:chForumWatchBell .55s cubic-bezier(.2,.8,.2,1)}\n@keyframes chForumWatchBell{0%{transform:rotate(0)}25%{transform:rotate(-12deg)}50%{transform:rotate(10deg)}75%{transform:rotate(-5deg)}100%{transform:rotate(0)}}\nhtml[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-editor,\nbody.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-editor,body.ch-theme-dark .ch-forums-page .ch-forum-composer-editor{background:#121e2e;border-color:#33475f}\nhtml[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar,\nbody.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar,\nhtml[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-meta,\nbody.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-meta,body.ch-theme-dark .ch-forums-page .ch-forum-composer-meta{background:#162539;border-color:#33475f;color:#b8c8dc}\nhtml[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button,\nbody.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar button,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar button{background:#101b2a!important;border-color:#3a4b61!important;color:#edf4ff!important}\nhtml[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-editor textarea,\nbody.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-editor textarea,body.ch-theme-dark .ch-forums-page .ch-forum-composer-editor textarea{background:#121e2e!important;color:#edf4ff!important}\n@media(max-width:700px){\n  body.ch-theme .ch-forums-page .ch-forum-composer-toolbar{overflow-x:auto;scrollbar-width:none}\n  body.ch-theme .ch-forums-page .ch-forum-composer-toolbar::-webkit-scrollbar{display:none}\n  body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button{width:38px;height:36px;min-width:38px}\n  body.ch-theme .ch-forums-page .ch-forum-composer-editor textarea{min-height:130px!important;font-size:16px!important}\n}\n@media(prefers-reduced-motion:reduce){body.ch-theme .ch-forums-page .ch-forum-action-button[data-ch-forum-toggle="subscription"].is-active .ch-forum-action-icon{animation:none!important}}\n

/* v0.4.228 — Forums compact composer toolbar polish */
body.ch-theme .ch-forums-page .ch-forum-composer-toolbar{
  display:flex!important;align-items:center!important;gap:7px!important;
  width:max-content!important;max-width:calc(100% - 16px)!important;
  margin:7px 8px 0!important;padding:3px 5px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 88%,transparent)!important;
  border-radius:11px!important;background:color-mix(in srgb,var(--ch-theme-surface-soft,#f5f7fa) 78%,var(--ch-theme-surface,#fff) 22%)!important;
  box-shadow:0 3px 9px rgba(15,23,42,.045)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toolbar-label{
  display:inline-flex!important;align-items:center!important;height:24px!important;padding:0 4px!important;
  color:var(--ch-theme-text-muted,#64748b)!important;font-size:10px!important;line-height:1!important;font-weight:800!important;
  letter-spacing:.045em!important;text-transform:uppercase!important;white-space:nowrap!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-tool-group{
  display:inline-flex!important;align-items:center!important;gap:2px!important;padding-left:5px!important;
  border-left:1px solid color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 90%,transparent)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button{
  width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;padding:0!important;
  border:0!important;border-radius:7px!important;background:transparent!important;color:var(--ch-theme-text,#172033)!important;
  display:grid!important;place-items:center!important;font-size:12px!important;font-weight:800!important;line-height:1!important;
  box-shadow:none!important;transform:none!important;transition:background .13s ease,color .13s ease,box-shadow .13s ease!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button:hover,
body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button:focus-visible{
  background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 12%,var(--ch-theme-surface,#fff) 88%)!important;
  color:var(--ch-theme-accent,var(--ch-accent,#2f7df4))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 24%,transparent)!important;
  outline:none!important;transform:none!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-editor>label{margin-top:6px!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar{
  background:#172638!important;border-color:#33475f!important;box-shadow:0 4px 12px rgba(0,0,0,.16)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar-label,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar-label,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar-label{color:#9fb2c9!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-tool-group,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-tool-group,body.ch-theme-dark .ch-forums-page .ch-forum-composer-tool-group{border-left-color:#3a4d64!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar button,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar button{background:transparent!important;border:0!important;color:#edf4ff!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button:focus-visible,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar button:hover,body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toolbar button:focus-visible,
body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar button:hover,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toolbar button:focus-visible{
  background:#203551!important;color:#9cc5ff!important;box-shadow:inset 0 0 0 1px #3c5a7a!important;
}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-composer-toolbar{gap:5px!important;margin:6px 7px 0!important;padding:3px 4px!important;overflow:visible!important;max-width:calc(100% - 14px)!important}
  body.ch-theme .ch-forums-page .ch-forum-composer-toolbar-label{font-size:9px!important;padding:0 3px!important}
  body.ch-theme .ch-forums-page .ch-forum-composer-tool-group{gap:1px!important;padding-left:4px!important}
  body.ch-theme .ch-forums-page .ch-forum-composer-toolbar button{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;font-size:13px!important}
}

/* v0.4.230 — Forums Phase 7: OP identity, Featured Reply, Quick Quote */
body.ch-theme .ch-forums-page .ch-forum-author-copy{display:grid;gap:2px;min-width:0}
body.ch-theme .ch-forums-page .ch-forum-author-name-line{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
body.ch-theme .ch-forums-page .ch-forum-op-badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:20px;padding:0 7px;border-radius:999px;
  background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 12%,var(--ch-theme-surface,#fff) 88%);
  border:1px solid color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 36%,var(--ch-theme-border,#dbe3ec));
  color:var(--ch-theme-accent,var(--ch-accent,#2f7df4));font-size:10px;font-style:normal;font-weight:900;letter-spacing:.05em;line-height:1;
}
body.ch-theme .ch-forums-page .ch-forum-featured-reply-badge{
  display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;
  background:linear-gradient(135deg,rgba(245,158,11,.16),rgba(234,179,8,.08));border:1px solid rgba(217,119,6,.30);
  color:#9a5b05;font-size:10px;font-style:normal;font-weight:900;letter-spacing:.02em;
}
body.ch-theme .ch-forums-page .ch-forum-post-card.is-featured-reply{
  border-color:color-mix(in srgb,#f59e0b 48%,var(--ch-theme-border,#dbe3ec))!important;
  box-shadow:0 16px 36px rgba(217,119,6,.10),0 0 0 1px rgba(245,158,11,.08) inset!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-card.is-featured-reply::before{
  content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:18px 0 0 18px;background:linear-gradient(#fbbf24,#f59e0b);pointer-events:none;
}
body.ch-theme .ch-forums-page .ch-forum-featured-jump{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 14px;padding:11px 13px;
  border:1px solid color-mix(in srgb,#f59e0b 38%,var(--ch-theme-border,#dbe3ec));border-radius:15px;
  background:linear-gradient(135deg,rgba(245,158,11,.10),color-mix(in srgb,var(--ch-theme-surface,#fff) 94%,transparent));
  color:var(--ch-theme-text,#172033);box-shadow:0 10px 26px rgba(217,119,6,.07);
}
body.ch-theme .ch-forums-page .ch-forum-featured-star{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(245,158,11,.15);color:#d97706;font-size:16px}
body.ch-theme .ch-forums-page .ch-forum-featured-jump>div{display:grid;gap:1px;min-width:0}
body.ch-theme .ch-forums-page .ch-forum-featured-jump strong{font-size:.82rem;color:inherit}
body.ch-theme .ch-forums-page .ch-forum-featured-jump small{font-size:.69rem;color:var(--ch-theme-text-muted,#64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ch-theme .ch-forums-page .ch-forum-featured-jump a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 10px;border-radius:10px;text-decoration:none!important;font-size:.72rem;font-weight:850;color:#8a5508;background:rgba(245,158,11,.10);border:1px solid rgba(217,119,6,.20)}
body.ch-theme .ch-forums-page .ch-forum-quote-action{
  display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ch-theme-text-muted,#64748b);font-size:.75rem;font-weight:800;cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
body.ch-theme .ch-forums-page .ch-forum-quote-action:hover,body.ch-theme .ch-forums-page .ch-forum-quote-action:focus-visible{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 8%,transparent);border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 24%,transparent);color:var(--ch-theme-accent,var(--ch-accent,#2f7df4));transform:translateY(-1px)}
body.ch-theme .ch-forums-page .ch-forum-post-content blockquote{margin:10px 0;padding:10px 12px;border-left:3px solid var(--ch-theme-accent,var(--ch-accent,#2f7df4));border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 7%,var(--ch-theme-surface-soft,#f5f7fa));color:var(--ch-theme-text,#172033)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-op-badge,body.ch-theme-mode-dark .ch-forums-page .ch-forum-op-badge,body.ch-theme-dark .ch-forums-page .ch-forum-op-badge{background:#17283d;border-color:#3b5f89;color:#8fc0ff}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-featured-reply-badge,body.ch-theme-mode-dark .ch-forums-page .ch-forum-featured-reply-badge,body.ch-theme-dark .ch-forums-page .ch-forum-featured-reply-badge{background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(234,179,8,.08));border-color:rgba(251,191,36,.34);color:#ffd46b}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-featured-jump,body.ch-theme-mode-dark .ch-forums-page .ch-forum-featured-jump,body.ch-theme-dark .ch-forums-page .ch-forum-featured-jump{background:linear-gradient(135deg,rgba(245,158,11,.10),#121e2e);border-color:rgba(251,191,36,.28);color:#f4f7fb}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-featured-jump small,body.ch-theme-mode-dark .ch-forums-page .ch-forum-featured-jump small,body.ch-theme-dark .ch-forums-page .ch-forum-featured-jump small{color:#b8c8dc}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-featured-jump a,body.ch-theme-mode-dark .ch-forums-page .ch-forum-featured-jump a,body.ch-theme-dark .ch-forums-page .ch-forum-featured-jump a{color:#ffd46b;background:rgba(245,158,11,.10);border-color:rgba(251,191,36,.24)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-post-content blockquote,body.ch-theme-mode-dark .ch-forums-page .ch-forum-post-content blockquote,body.ch-theme-dark .ch-forums-page .ch-forum-post-content blockquote{background:#17263a;color:#edf4ff}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-featured-jump{grid-template-columns:auto minmax(0,1fr);gap:9px}
  body.ch-theme .ch-forums-page .ch-forum-featured-jump a{grid-column:1/-1;width:100%}
  body.ch-theme .ch-forums-page .ch-forum-featured-reply-badge{height:20px;padding:0 7px}
  body.ch-theme .ch-forums-page .ch-forum-quote-action{min-height:38px;padding:0 11px}
}
@media(prefers-reduced-motion:reduce){body.ch-theme .ch-forums-page .ch-forum-quote-action{transition:none!important}}


/* v0.4.231 — Forums Phase 8: Rich Media & Composer 2.0 presentation */
.ch-theme .ch-forum-rich-tools{margin-inline:0}.ch-theme .ch-forum-dropzone{box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}.ch-theme .ch-forum-attachment-gallery{border:1px solid var(--ch-theme-border,#dce3eb);background:var(--ch-theme-surface,#fff)}.ch-theme .ch-forum-attachment-item{transition:transform .16s ease,filter .16s ease}.ch-theme .ch-forum-attachment-item:hover{filter:brightness(.98)}.ch-theme .ch-forum-poll-shell .ch-poll{margin:0}.ch-theme .ch-forum-poll-shell .ch-poll-option{min-height:42px}.ch-theme .ch-forum-media-preview-item{box-shadow:0 4px 14px rgba(15,23,42,.06)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forum-attachment-gallery{border-color:var(--ch-theme-border,#33475e);background:var(--ch-theme-surface,#101b29)}
@media(max-width:700px){.ch-theme .ch-forum-rich-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ch-theme .ch-forum-rich-action{justify-content:center}.ch-theme .ch-forum-attachment-gallery.is-video video{max-height:70vh}}
@media(prefers-reduced-motion:reduce){.ch-theme .ch-forum-attachment-item{transition:none!important}}

/* v0.4.232 — Forums Phase 9: Skins, Identity & Delight */
body.ch-theme .ch-forums-page .ch-forum-author-badges{
  display:block;
  margin-top:2px;
  min-width:0;
}
body.ch-theme .ch-forums-page .ch-forum-author-badges .ch-user-badges{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:4px!important;
  margin:0!important;
  max-width:100%;
}
body.ch-theme .ch-forums-page .ch-forum-author-badges .ch-user-badge{
  margin:0!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-avatar{
  overflow:visible!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-card.ch-cosmetic-slot-forum{
  isolation:isolate;
}
body.ch-theme .ch-forums-page .ch-forum-post-card.ch-cosmetic-slot-forum[data-ch-forum-card-kind="topic"]{
  --ch-forum-skin-surface-kind:topic;
}
body.ch-theme .ch-forums-page .ch-forum-post-card.ch-cosmetic-slot-forum[data-ch-forum-card-kind="reply"]{
  --ch-forum-skin-surface-kind:reply;
}
body.ch-theme .ch-forums-page .ch-forum-action-button.is-just-toggled .ch-forum-action-icon{
  animation:chForumIdentityPop .48s cubic-bezier(.2,.8,.2,1);
}
body.ch-theme .ch-forums-page .ch-forum-action-button[data-ch-forum-toggle="favorite"].is-just-toggled{
  animation:chForumBookmarkConfirm .48s cubic-bezier(.2,.8,.2,1);
}
body.ch-theme .ch-forums-page .ch-forum-action-button[data-ch-forum-toggle="subscription"].is-just-toggled .ch-forum-action-icon{
  animation:chForumWatchConfirm .52s cubic-bezier(.2,.8,.2,1);
}
body.ch-theme .ch-forums-page .ch-forum-reader-milestone{
  animation:chForumMilestoneArrive .62s cubic-bezier(.2,.8,.2,1) both;
}
body.ch-theme .ch-forums-page .ch-forum-featured-reply-badge{
  position:relative;
}
body.ch-theme .ch-forums-page .ch-forum-featured-reply-badge::after{
  content:"";
  position:absolute;
  inset:-3px -5px;
  border-radius:999px;
  border:1px solid color-mix(in srgb,currentColor 32%,transparent);
  opacity:0;
  transform:scale(.82);
  animation:chForumFeaturedGlow .7s ease-out 1;
  pointer-events:none;
}
@keyframes chForumIdentityPop{
  0%{transform:scale(.82)}
  48%{transform:scale(1.18)}
  100%{transform:scale(1)}
}
@keyframes chForumBookmarkConfirm{
  0%{transform:translateY(0)}
  45%{transform:translateY(-2px)}
  100%{transform:translateY(0)}
}
@keyframes chForumWatchConfirm{
  0%{transform:rotate(0) scale(.9)}
  24%{transform:rotate(-12deg) scale(1.12)}
  52%{transform:rotate(10deg) scale(1.08)}
  76%{transform:rotate(-4deg) scale(1.03)}
  100%{transform:rotate(0) scale(1)}
}
@keyframes chForumMilestoneArrive{
  0%{opacity:.35;transform:translateY(2px) scale(.96)}
  60%{opacity:1;transform:translateY(-1px) scale(1.035)}
  100%{opacity:1;transform:none}
}
@keyframes chForumFeaturedGlow{
  0%{opacity:0;transform:scale(.82)}
  38%{opacity:.72}
  100%{opacity:0;transform:scale(1.2)}
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-author-badges,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-author-badges,
body.ch-theme-dark .ch-forums-page .ch-forum-author-badges{
  color:var(--ch-theme-text,#edf4ff);
}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-author-badges .ch-user-badges{gap:3px!important}
  body.ch-theme .ch-forums-page .ch-forum-author-badges{margin-top:3px}
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-forums-page .ch-forum-action-button.is-just-toggled,
  body.ch-theme .ch-forums-page .ch-forum-action-button.is-just-toggled .ch-forum-action-icon,
  body.ch-theme .ch-forums-page .ch-forum-reader-milestone,
  body.ch-theme .ch-forums-page .ch-forum-featured-reply-badge::after{
    animation:none!important;
  }
}

/* v0.4.233 — Forums Phase 10: Gamification & Challenges presentation */
body.ch-theme .ch-forums-page .ch-forum-gamehub{border-color:color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 92%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--ch-theme-surface,#fff) 96%,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 4%),var(--ch-theme-surface-soft,#f6f8fb));box-shadow:0 12px 30px rgba(18,39,65,.06)}
body.ch-theme .ch-forums-page .ch-forum-gamehub-head span{color:var(--ch-theme-accent,var(--ch-accent,#2f7df4))}
body.ch-theme .ch-forums-page .ch-forum-challenge-card.is-complete{box-shadow:0 0 0 1px rgba(34,197,94,.08) inset}
body.ch-theme .ch-forums-page .ch-forum-achievement-list>span.is-earned i{box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 10%,transparent)}
body.ch-theme .ch-forums-page .ch-forum-leaderboard li:first-child{background:linear-gradient(90deg,rgba(245,158,11,.10),color-mix(in srgb,var(--ch-theme-surface-soft,#f6f8fb) 96%,transparent))}
body.ch-theme .ch-forums-page .ch-forum-leaderboard li:first-child em{color:#b87309}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-gamehub,body.ch-theme-mode-dark .ch-forums-page .ch-forum-gamehub,body.ch-theme-dark .ch-forums-page .ch-forum-gamehub{background:linear-gradient(145deg,#101b29,#142235);border-color:#33475e;box-shadow:0 14px 34px rgba(0,0,0,.18)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-leaderboard li:first-child,body.ch-theme-mode-dark .ch-forums-page .ch-forum-leaderboard li:first-child,body.ch-theme-dark .ch-forums-page .ch-forum-leaderboard li:first-child{background:linear-gradient(90deg,rgba(245,158,11,.12),#101b29)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-leaderboard li:first-child em,body.ch-theme-mode-dark .ch-forums-page .ch-forum-leaderboard li:first-child em,body.ch-theme-dark .ch-forums-page .ch-forum-leaderboard li:first-child em{color:#f8c66c}

/* v0.4.234 — Forums Phase 11: compact search presentation */
body.ch-theme .ch-forums-directory .ch-forum-directory-search{margin-top:-2px}
body.ch-theme .ch-forums-directory .ch-forum-search-box{border-color:color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 92%,transparent);background:color-mix(in srgb,var(--ch-theme-surface,#fff) 98%,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 2%);box-shadow:0 7px 18px rgba(18,39,65,.06)}
body.ch-theme .ch-forums-directory .ch-forum-search-box:focus-within{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 58%,var(--ch-theme-border,#dbe3ec));box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 10%,transparent),0 9px 20px rgba(18,39,65,.07)}
body.ch-theme .ch-forums-directory .ch-forum-search-icon{color:var(--ch-theme-accent,var(--ch-accent,#2f7df4))}
body.ch-theme .ch-forums-directory .ch-forum-search-results{border-color:color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 92%,transparent);background:var(--ch-theme-surface,#fff);box-shadow:0 20px 48px rgba(17,35,57,.16)}
body.ch-theme .ch-forums-directory .ch-forum-search-result:hover,body.ch-theme .ch-forums-directory .ch-forum-search-result:focus-visible{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 7%,var(--ch-theme-surface,#fff))}
body.ch-theme .ch-forums-directory .ch-forum-search-result-icon{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 10%,var(--ch-theme-surface-soft,#f6f8fb));color:var(--ch-theme-accent,var(--ch-accent,#2f7df4))}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-directory .ch-forum-search-box,body.ch-theme-mode-dark .ch-forums-directory .ch-forum-search-box,body.ch-theme-dark .ch-forums-directory .ch-forum-search-box{background:#111d2c;border-color:#33475e}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-directory .ch-forum-search-results,body.ch-theme-mode-dark .ch-forums-directory .ch-forum-search-results,body.ch-theme-dark .ch-forums-directory .ch-forum-search-results{background:#111d2c;border-color:#33475e}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-directory .ch-forum-search-result:hover,html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-directory .ch-forum-search-result:focus-visible,body.ch-theme-mode-dark .ch-forums-directory .ch-forum-search-result:hover,body.ch-theme-mode-dark .ch-forums-directory .ch-forum-search-result:focus-visible,body.ch-theme-dark .ch-forums-directory .ch-forum-search-result:hover,body.ch-theme-dark .ch-forums-directory .ch-forum-search-result:focus-visible{background:#17283a}

/* v0.4.235 — Forums: threaded discussion + collapsible composer presentation */
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible]{border-color:color-mix(in srgb,var(--ch-theme-border,#dbe3ec) 94%,transparent);background:var(--ch-theme-surface,#fff);box-shadow:0 8px 22px rgba(17,35,57,.05)}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle{color:var(--ch-theme-text,#172033);transition:background .16s ease}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle:hover{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 4%,transparent)}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 9%,var(--ch-theme-surface-soft,#f5f7fa));color:var(--ch-theme-accent,var(--ch-accent,#2f7df4))}
body.ch-theme .ch-forums-page .ch-forum-reply-context{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 24%,var(--ch-theme-border,#dbe3ec));background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 6%,var(--ch-theme-surface-soft,#f6f8fb));color:var(--ch-theme-text-muted,#64748b)}
body.ch-theme .ch-forums-page .ch-forum-reply-context strong{color:var(--ch-theme-text,#172033)}
body.ch-theme .ch-forums-page .ch-forum-thread-node.is-thread-depth-1::before,body.ch-theme .ch-forums-page .ch-forum-thread-node.is-thread-depth-2::before{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 20%,var(--ch-theme-border,#dbe3ec))}
body.ch-theme .ch-forums-page .ch-forum-reply-parent-context{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 5%,var(--ch-theme-surface-soft,#f6f8fb));color:var(--ch-theme-text-muted,#64748b)}
body.ch-theme .ch-forums-page .ch-forum-reply-parent-context a{color:var(--ch-theme-accent,var(--ch-accent,#2f7df4))}
body.ch-theme .ch-forums-page .ch-forum-thread-reply-action{color:var(--ch-theme-text-muted,#64748b);transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}
body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:hover,body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:focus-visible{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 8%,transparent);border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2f7df4)) 24%,transparent);color:var(--ch-theme-accent,var(--ch-accent,#2f7df4));transform:translateY(-1px)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible],body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible],body.ch-theme-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible]{background:#111d2c;border-color:#33475e}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toggle,body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toggle,body.ch-theme-dark .ch-forums-page .ch-forum-composer-toggle{color:#edf4ff}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-reply-context,body.ch-theme-mode-dark .ch-forums-page .ch-forum-reply-context,body.ch-theme-dark .ch-forums-page .ch-forum-reply-context{background:#142235;border-color:#3a5571;color:#bed0e2}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-reply-context strong,body.ch-theme-mode-dark .ch-forums-page .ch-forum-reply-context strong,body.ch-theme-dark .ch-forums-page .ch-forum-reply-context strong{color:#f0f6fd}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-reply-parent-context,body.ch-theme-mode-dark .ch-forums-page .ch-forum-reply-parent-context,body.ch-theme-dark .ch-forums-page .ch-forum-reply-parent-context{background:#142235;color:#aebfd2}
@media(max-width:700px){body.ch-theme .ch-forums-page .ch-forum-composer-toggle{min-height:64px}body.ch-theme .ch-forums-page .ch-forum-thread-reply-action{min-height:38px;padding:0 11px}}
@media(prefers-reduced-motion:reduce){body.ch-theme .ch-forums-page .ch-forum-thread-reply-action,body.ch-theme .ch-forums-page .ch-forum-composer-toggle{transition:none!important}}


/* =========================================================
   v0.4.236 — Forums collapsed composer + reaction scale polish.
   Theme presentation only. Preserve Core collapse/thread behavior.
   The collapsed toggle owns the card surface rather than sitting inside the
   legacy padded composer shell. Forum reaction visuals match Community scale
   while the separate who-reacted summary remains compact.
   ========================================================= */
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible]{
  padding:0!important;
  gap:0!important;
  overflow:hidden!important;
  border-radius:16px!important;
  background:var(--ch-forum-bg,#fff)!important;
  border:1px solid var(--ch-forum-border,#dbe3ec)!important;
  box-shadow:0 6px 18px rgba(17,35,57,.055)!important;
  transition:border-color .16s ease,box-shadow .16s ease!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:hover{
  border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 28%,var(--ch-forum-border,#dbe3ec))!important;
  box-shadow:0 9px 24px rgba(17,35,57,.075)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle{
  min-height:66px!important;
  padding:12px 14px 12px 16px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ch-forum-text,#172033)!important;
  box-shadow:none!important;
  transition:background .16s ease!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle:hover,
body.ch-theme .ch-forums-page .ch-forum-composer-toggle:focus-visible{
  background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 5%,var(--ch-forum-bg,#fff))!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle:focus-visible{
  outline:2px solid color-mix(in srgb,var(--ch-forum-link,#1769d2) 58%,transparent)!important;
  outline-offset:-3px!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading{
  display:grid!important;
  gap:3px!important;
  min-width:0!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading strong{
  color:var(--ch-forum-text-strong,#0f172a)!important;
  font-size:.95rem!important;
  font-weight:850!important;
  line-height:1.2!important;
  letter-spacing:-.01em!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading span{
  color:var(--ch-forum-muted,#5f6f82)!important;
  font-size:.76rem!important;
  font-weight:600!important;
  line-height:1.3!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  flex-basis:32px!important;
  border:1px solid color-mix(in srgb,var(--ch-forum-link,#1769d2) 18%,var(--ch-forum-border,#dbe3ec))!important;
  border-radius:10px!important;
  background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 7%,var(--ch-forum-bg-soft,#f7f9fc))!important;
  color:var(--ch-forum-link,#1769d2)!important;
  font-size:18px!important;
  font-weight:900!important;
  box-shadow:none!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.is-expanded .ch-forum-composer-toggle{
  border-bottom:1px solid var(--ch-forum-border,#dbe3ec)!important;
  background:color-mix(in srgb,var(--ch-forum-bg-soft,#f7f9fc) 68%,var(--ch-forum-bg,#fff))!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.is-expanded .ch-forum-composer-body-inner{
  padding-top:14px!important;
}

/* Selected Forum reaction: same visual weight as Community posts. */
body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual]{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  min-width:24px!important;
  height:24px!important;
  line-height:1!important;
}
body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual] > .ch-reaction-emoji{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  min-width:24px!important;
  height:24px!important;
  margin:0!important;
  font-size:24px!important;
  line-height:24px!important;
}
body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual] > .ch-reaction-icon-img{
  width:24px!important;
  min-width:24px!important;
  max-width:24px!important;
  height:24px!important;
  max-height:24px!important;
  margin:0!important;
  object-fit:contain!important;
}

/* Forum reaction picker: match Community reaction readability, not summary size. */
body.ch-theme .ch-forums-page .ch-forum-reaction-picker button .ch-reaction-emoji,
body > .ch-forum-reaction-picker.is-forum-reaction-portal button .ch-reaction-emoji{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  font-size:30px!important;
  line-height:1!important;
}
body.ch-theme .ch-forums-page .ch-forum-reaction-picker button .ch-reaction-icon-img,
body > .ch-forum-reaction-picker.is-forum-reaction-portal button .ch-reaction-icon-img{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  max-width:32px!important;
  max-height:32px!important;
  margin:0!important;
  object-fit:contain!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible],
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible],
body.ch-theme-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible]{
  background:var(--ch-forum-bg,#121d2c)!important;
  border-color:var(--ch-forum-border,#30435a)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.16)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toggle:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toggle:focus-visible,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toggle:hover,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toggle:focus-visible,
body.ch-theme-dark .ch-forums-page .ch-forum-composer-toggle:hover,
body.ch-theme-dark .ch-forums-page .ch-forum-composer-toggle:focus-visible{
  background:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 7%,var(--ch-forum-bg,#121d2c))!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading strong,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading strong,
body.ch-theme-dark .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading strong{color:var(--ch-forum-text-strong,#f8fbff)!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading span,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading span,
body.ch-theme-dark .ch-forums-page .ch-forum-composer-toggle .ch-forum-composer-heading span{color:var(--ch-forum-muted,#afbdd0)!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer-toggle-icon,
body.ch-theme-dark .ch-forums-page .ch-forum-composer-toggle-icon{
  background:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 11%,var(--ch-forum-bg-soft,#18263a))!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 22%,var(--ch-forum-border,#30435a))!important;
  color:var(--ch-forum-link,#8fc5ff)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer.is-expanded .ch-forum-composer-toggle,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer.is-expanded .ch-forum-composer-toggle,
body.ch-theme-dark .ch-forums-page .ch-forum-composer.is-expanded .ch-forum-composer-toggle{
  border-bottom-color:var(--ch-forum-border,#30435a)!important;
  background:color-mix(in srgb,var(--ch-forum-bg-soft,#18263a) 72%,var(--ch-forum-bg,#121d2c))!important;
}

@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-composer-toggle{
    min-height:62px!important;
    padding:11px 12px 11px 14px!important;
  }
  body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon{
    width:30px!important;height:30px!important;min-width:30px!important;flex-basis:30px!important;
  }
  body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual]{
    width:29px!important;min-width:29px!important;height:29px!important;
  }
  body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual] > .ch-reaction-emoji{
    width:29px!important;min-width:29px!important;height:29px!important;font-size:29px!important;line-height:29px!important;
  }
  body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual] > .ch-reaction-icon-img{
    width:29px!important;min-width:29px!important;max-width:29px!important;height:29px!important;max-height:29px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible]{transition:none!important}
}

/* =========================================================
   v0.4.237 — Forums composer placement + control polish.
   Presentation-only refinements on top of Core v1.0.329.
   ========================================================= */

/* The reply composer now lives directly beneath the Topic starter card. */
body.ch-theme .ch-forums-page .ch-topic-thread > .ch-forum-reply-composer{
  margin:0!important;
}

/* Draw the composer chevron ourselves so it is optically centered in the button. */
body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
  line-height:0!important;
  text-indent:0!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon::before{
  content:"";
  display:block;
  width:7px;
  height:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transform-origin:center;
}

/* Direct Reply is the primary conversation-depth action; Quote remains available beside it. */
body.ch-theme .ch-forums-page .ch-forum-thread-reply-action{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:36px!important;
  padding:0 12px!important;
  border:1px solid color-mix(in srgb,var(--ch-forum-link,#1769d2) 22%,var(--ch-forum-border,#dbe3ec))!important;
  border-radius:999px!important;
  background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 6%,var(--ch-forum-bg,#fff))!important;
  color:var(--ch-forum-link,#1769d2)!important;
  box-shadow:0 2px 7px rgba(17,35,57,.035)!important;
  font-size:.76rem!important;
  font-weight:850!important;
  line-height:1!important;
  letter-spacing:-.005em!important;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease!important;
}
body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:hover,
body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:focus-visible{
  background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 11%,var(--ch-forum-bg,#fff))!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 42%,var(--ch-forum-border,#dbe3ec))!important;
  color:var(--ch-forum-link,#1769d2)!important;
  box-shadow:0 6px 15px rgba(17,35,57,.08)!important;
  transform:translateY(-1px)!important;
}
body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:focus-visible{
  outline:2px solid color-mix(in srgb,var(--ch-forum-link,#1769d2) 55%,transparent)!important;
  outline-offset:2px!important;
}
body.ch-theme .ch-forums-page .ch-forum-thread-reply-icon{
  display:inline-grid!important;
  place-items:center!important;
  width:16px!important;
  height:16px!important;
  flex:0 0 16px!important;
}
body.ch-theme .ch-forums-page .ch-forum-thread-reply-icon svg{
  display:block!important;
  width:16px!important;
  height:16px!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-thread-reply-action,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-thread-reply-action,
body.ch-theme-dark .ch-forums-page .ch-forum-thread-reply-action{
  background:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 9%,var(--ch-forum-bg,#121d2c))!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 24%,var(--ch-forum-border,#30435a))!important;
  color:var(--ch-forum-link,#8fc5ff)!important;
  box-shadow:none!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-thread-reply-action:focus-visible,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-thread-reply-action:hover,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-thread-reply-action:focus-visible,
body.ch-theme-dark .ch-forums-page .ch-forum-thread-reply-action:hover,
body.ch-theme-dark .ch-forums-page .ch-forum-thread-reply-action:focus-visible{
  background:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 15%,var(--ch-forum-bg,#121d2c))!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 42%,var(--ch-forum-border,#30435a))!important;
}

@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-thread-reply-action{
    min-height:38px!important;
    padding:0 12px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-forums-page .ch-forum-thread-reply-action{transition:none!important}
}

/* =========================================================
   v0.4.238 — Forums composer affordance + Quote availability polish.
   Theme-only; preserves Core v1.0.329 behavior.
   ========================================================= */

/* Quote must read as an available secondary action, not a disabled control. */
body.ch-theme .ch-forums-page .ch-forum-quote-action{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:36px!important;
  padding:0 11px!important;
  border:1px solid color-mix(in srgb,var(--ch-forum-text,#334155) 14%,var(--ch-forum-border,#dbe3ec))!important;
  border-radius:999px!important;
  background:color-mix(in srgb,var(--ch-forum-text,#334155) 3%,var(--ch-forum-bg,#fff))!important;
  color:var(--ch-forum-text,#334155)!important;
  opacity:1!important;
  box-shadow:none!important;
  font-size:.76rem!important;
  font-weight:800!important;
  line-height:1!important;
}
body.ch-theme .ch-forums-page .ch-forum-quote-action > span{
  display:inline-grid!important;
  place-items:center!important;
  min-width:15px!important;
  color:var(--ch-forum-muted,#64748b)!important;
  font-size:.9rem!important;
  line-height:1!important;
}
body.ch-theme .ch-forums-page .ch-forum-quote-action:hover,
body.ch-theme .ch-forums-page .ch-forum-quote-action:focus-visible{
  background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 7%,var(--ch-forum-bg,#fff))!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 28%,var(--ch-forum-border,#dbe3ec))!important;
  color:var(--ch-forum-link,#1769d2)!important;
  opacity:1!important;
}
body.ch-theme .ch-forums-page .ch-forum-quote-action:hover > span,
body.ch-theme .ch-forums-page .ch-forum-quote-action:focus-visible > span{
  color:var(--ch-forum-link,#1769d2)!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-quote-action,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-quote-action,
body.ch-theme-dark .ch-forums-page .ch-forum-quote-action{
  background:#172438!important;
  border-color:#3a4d64!important;
  color:#d8e4f2!important;
  opacity:1!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-quote-action > span,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-quote-action > span,
body.ch-theme-dark .ch-forums-page .ch-forum-quote-action > span{
  color:#a9bbcf!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-quote-action:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-quote-action:focus-visible,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-quote-action:hover,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-quote-action:focus-visible,
body.ch-theme-dark .ch-forums-page .ch-forum-quote-action:hover,
body.ch-theme-dark .ch-forums-page .ch-forum-quote-action:focus-visible{
  background:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 12%,#172438)!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 38%,#3a4d64)!important;
  color:var(--ch-forum-link,#8fc5ff)!important;
}

/* Collapsed composer bars should clearly advertise themselves as click targets. */
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed{
  border:1px solid color-mix(in srgb,var(--ch-forum-link,#1769d2) 30%,var(--ch-forum-border,#dbe3ec))!important;
  box-shadow:0 8px 22px rgba(17,35,57,.055),inset 0 0 0 1px color-mix(in srgb,var(--ch-forum-link,#1769d2) 5%,transparent)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:focus-within{
  border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 52%,var(--ch-forum-border,#dbe3ec))!important;
  box-shadow:0 10px 26px rgba(17,35,57,.075),inset 0 0 0 1px color-mix(in srgb,var(--ch-forum-link,#1769d2) 9%,transparent)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed .ch-forum-composer-toggle{
  border-radius:inherit!important;
}

html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed,
body.ch-theme-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed{
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 32%,var(--ch-forum-border,#30435a))!important;
  box-shadow:0 8px 22px rgba(0,0,0,.18),inset 0 0 0 1px color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 6%,transparent)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:focus-within,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:hover,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:focus-within,
body.ch-theme-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:hover,
body.ch-theme-dark .ch-forums-page .ch-forum-composer[data-ch-forum-collapsible].is-collapsed:focus-within{
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 55%,var(--ch-forum-border,#30435a))!important;
}

/* Hard-center the composer caret. Do not rely on font glyph geometry. */
body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon{
  position:relative!important;
  display:block!important;
  padding:0!important;
  overflow:hidden!important;
  font-size:0!important;
  line-height:0!important;
  text-align:center!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer-toggle-icon::before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:48%!important;
  width:8px!important;
  height:8px!important;
  margin:0!important;
  border:0!important;
  border-right:2px solid currentColor!important;
  border-bottom:2px solid currentColor!important;
  transform:translate(-50%,-50%) rotate(45deg)!important;
  transform-origin:50% 50%!important;
  box-sizing:border-box!important;
}

@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-quote-action{min-height:38px!important;padding:0 12px!important}
}


/* =========================================================
   v0.4.239 — Forums Phase 11 continuation + composer Skin parity.
   - Like zero-state centers its label until a real reaction is selected.
   - Personalized discovery stays compact and permission-safe.
   - Forum composer inherits Forum Skin only when that slot is equipped.
   - Community composer inherits Community Posts Skin only when that slot is equipped.
   Sacred zero-state remains untouched because Core emits no Skin class when unequipped.
   ========================================================= */

/* No selected reaction: remove the empty visual lane completely and center Like. */
body.ch-theme .ch-forums-page .ch-forum-react-button:not(.is-active){justify-content:center!important}
body.ch-theme .ch-forums-page .ch-forum-react-button:not(.is-active) [data-ch-forum-react-visual],
body.ch-theme .ch-forums-page .ch-forum-react-button [data-ch-forum-react-visual]:empty{
  display:none!important;width:0!important;min-width:0!important;height:0!important;margin:0!important
}

/* Personalized discovery. No ranking score is shown to members. */
body.ch-theme .ch-forums-page .ch-forum-personalized{display:grid;gap:12px;margin:2px 0 14px}
body.ch-theme .ch-forums-page .ch-forum-personalized-head{display:grid;gap:3px;padding:0 2px}
body.ch-theme .ch-forums-page .ch-forum-personalized-head>span{color:var(--ch-forum-link,#1769d2);font-size:.68rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
body.ch-theme .ch-forums-page .ch-forum-personalized-head h2{margin:0;color:var(--ch-forum-text-strong,#0f172a);font-size:1.05rem;line-height:1.2}
body.ch-theme .ch-forums-page .ch-forum-personalized-head p{margin:0;color:var(--ch-forum-muted,#64748b);font-size:.78rem;font-weight:600;line-height:1.35}
body.ch-theme .ch-forums-page .ch-forum-personalized-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
body.ch-theme .ch-forums-page .ch-forum-discovery-card.is-recommended{border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 24%,var(--ch-forum-border,#dbe3ec));box-shadow:inset 0 2px 0 color-mix(in srgb,var(--ch-forum-link,#1769d2) 42%,transparent)}
body.ch-theme .ch-forums-page .ch-forum-discovery-card.is-friends{border-color:color-mix(in srgb,#8b5cf6 24%,var(--ch-forum-border,#dbe3ec));box-shadow:inset 0 2px 0 rgba(139,92,246,.34)}
body.ch-theme .ch-forums-page .ch-forum-discovery-card.is-saved{border-color:color-mix(in srgb,#0ea5e9 24%,var(--ch-forum-border,#dbe3ec));box-shadow:inset 0 2px 0 rgba(14,165,233,.34)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-personalized-head h2,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-personalized-head h2,body.ch-theme-dark .ch-forums-page .ch-forum-personalized-head h2{color:var(--ch-forum-text-strong,#f8fbff)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-personalized-head p,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-personalized-head p,body.ch-theme-dark .ch-forums-page .ch-forum-personalized-head p{color:var(--ch-forum-muted,#afbdd0)}

/* Forum Skin -> Forum composer only. */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum{position:relative!important;isolation:isolate!important}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-effect-titanium{border-color:#a8b1bd!important;box-shadow:inset 3px 0 0 #7c8795,0 7px 22px rgba(51,65,85,.10)!important;background-image:linear-gradient(120deg,rgba(148,163,184,.07),transparent 28%,rgba(226,232,240,.05) 55%,transparent 78%)!important}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-effect-inferno-forum{border-color:rgba(249,115,22,.72)!important;background-image:linear-gradient(105deg,rgba(127,29,29,.09),rgba(249,115,22,.065) 28%,transparent 65%)!important;box-shadow:inset 4px 0 0 #f97316,0 0 15px rgba(234,88,12,.15),0 8px 24px rgba(124,45,18,.10)!important}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-effect-neon-grid-forum{border-color:rgba(34,211,238,.72)!important;box-shadow:inset 3px 0 0 #22d3ee,0 0 0 1px rgba(139,92,246,.20),0 0 16px rgba(34,211,238,.13)!important;background-image:linear-gradient(120deg,rgba(34,211,238,.06),transparent 35%,rgba(139,92,246,.055))!important}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-effect-frost-forge-forum{border-color:rgba(125,211,252,.74)!important;box-shadow:inset 4px 0 0 #7dd3fc,inset 0 1px 0 rgba(224,242,254,.30),0 0 14px rgba(14,165,233,.12)!important;background-image:linear-gradient(115deg,rgba(224,242,254,.08),rgba(56,189,248,.045) 34%,transparent 72%)!important}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-effect-cosmic-relay-forum{border-color:rgba(167,139,250,.72)!important;box-shadow:inset 3px 0 0 #8b5cf6,0 0 15px rgba(124,58,237,.14)!important;background-image:linear-gradient(125deg,rgba(59,130,246,.055),transparent 35%,rgba(168,85,247,.065))!important}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-effect-liberty-forge-forum{border-color:#315ca8!important;background-image:linear-gradient(100deg,rgba(185,28,28,.08),transparent 20%,transparent 80%,rgba(29,78,216,.08))!important;box-shadow:inset 4px 0 0 #b91c1c,inset -4px 0 0 #1d4ed8,0 0 16px rgba(37,99,235,.14)!important}

/* Community Posts Skin -> Community composer only. */
body.ch-theme .ch-composer.ch-cosmetic-slot-post{position:relative!important;isolation:isolate!important}
body.ch-theme .ch-composer.ch-cosmetic-effect-neon-circuit{border-color:rgba(34,211,238,.72)!important;box-shadow:0 0 0 1px rgba(99,102,241,.20),0 0 14px rgba(34,211,238,.16),0 8px 26px rgba(6,182,212,.10),inset 3px 0 0 #22d3ee!important}
body.ch-theme .ch-composer.ch-cosmetic-effect-ember-edge{border-color:rgba(251,146,60,.72)!important;background-image:linear-gradient(90deg,rgba(249,115,22,.07),transparent 18%)!important;box-shadow:inset 4px 0 0 #f97316,inset 0 1px 0 rgba(251,191,36,.18),0 0 13px rgba(234,88,12,.13),0 8px 22px rgba(124,45,18,.08)!important}
body.ch-theme .ch-composer.ch-cosmetic-effect-liberty-standard{border-color:rgba(49,92,168,.72)!important;background-image:linear-gradient(90deg,rgba(185,28,28,.08),transparent 16%,transparent 84%,rgba(29,78,216,.08))!important;box-shadow:inset 4px 0 0 #b91c1c,inset -4px 0 0 #1d4ed8,0 0 16px rgba(37,99,235,.13)!important}
body.ch-theme .ch-composer.ch-cosmetic-effect-midnight-pulse-post{border-color:rgba(71,85,105,.72)!important;box-shadow:inset 4px 0 0 #334155,0 0 13px rgba(59,130,246,.11)!important}
body.ch-theme .ch-composer.ch-cosmetic-effect-frost-signal-post{border-color:rgba(125,211,252,.72)!important;background-image:linear-gradient(105deg,rgba(56,189,248,.07),transparent 28%)!important;box-shadow:inset 4px 0 0 #38bdf8,inset 0 1px 0 rgba(224,242,254,.26),0 0 13px rgba(14,165,233,.12)!important}
body.ch-theme .ch-composer.ch-cosmetic-effect-cosmic-frame-post{border-color:rgba(139,92,246,.68)!important;background-image:linear-gradient(110deg,rgba(59,130,246,.07),rgba(139,92,246,.09),transparent 58%)!important;box-shadow:inset 4px 0 0 #7c3aed,0 0 18px rgba(99,102,241,.18)!important}

@media(max-width:900px){body.ch-theme .ch-forums-page .ch-forum-personalized-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){body.ch-theme .ch-composer.ch-cosmetic-slot-post,body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum{animation:none!important}}

/* =========================================================
   v0.4.240 — Forums Phase 12: realtime conversation + Skin ownership recovery.
   - Forum Like has no glow/shadow in any state.
   - Forum composer uses the exact equipped Forum Skin surface, including
     collapsed/expanded bars, without the generic composer affordance winning.
   - Realtime hints remain compact and low-noise.
   ========================================================= */

/* Forum Like: keep the clean pill, remove the halo/glow entirely. */
body.ch-theme .ch-forums-page .ch-forum-react-button,
body.ch-theme .ch-forums-page .ch-forum-react-button:hover,
body.ch-theme .ch-forums-page .ch-forum-react-button:focus,
body.ch-theme .ch-forums-page .ch-forum-react-button:focus-visible,
body.ch-theme .ch-forums-page .ch-forum-react-button.is-active,
body.ch-theme .ch-forums-page .ch-forum-reaction-control.is-bursting .ch-forum-react-button{
  box-shadow:none!important;
  filter:none!important;
  text-shadow:none!important;
}

/* The equipped Forum Skin owns the whole composer shell. The generic collapsed
   affordance must never overwrite its border/background/shadow. */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible]{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible] > .ch-forum-composer-toggle,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].is-expanded > .ch-forum-composer-toggle{
  position:relative!important;
  z-index:2!important;
  background:transparent!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible] > .ch-forum-composer-body{
  position:relative!important;
  z-index:2!important;
}

/* Titanium — same brushed-metal language as Forum cards. */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium.is-collapsed,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium.is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium.is-collapsed:focus-within{
  border:1px solid #8995a4!important;
  background-image:linear-gradient(105deg,rgba(255,255,255,.14),transparent 20%,rgba(148,163,184,.12) 39%,rgba(255,255,255,.10) 51%,transparent 66%),repeating-linear-gradient(0deg,rgba(148,163,184,.035) 0 1px,transparent 1px 3px)!important;
  box-shadow:inset 4px 0 0 #aeb7c2,inset 0 1px 0 rgba(255,255,255,.42),inset 0 -1px 0 rgba(71,85,105,.30),0 0 0 1px rgba(71,85,105,.14),0 8px 22px rgba(51,65,85,.13)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;top:0!important;height:4px!important;z-index:3!important;pointer-events:none!important;background:linear-gradient(90deg,#66717e,#d5dbe2 22%,#7e8995 44%,#f0f3f6 58%,#788390 77%,#b9c1ca)!important;opacity:.9!important;
}

/* Inferno */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-inferno-forum,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-inferno-forum.is-collapsed,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-inferno-forum.is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-inferno-forum.is-collapsed:focus-within{
  border:1px solid rgba(249,115,22,.72)!important;
  background-image:linear-gradient(105deg,rgba(127,29,29,.09),rgba(249,115,22,.065) 28%,transparent 65%)!important;
  box-shadow:inset 4px 0 0 #f97316,0 0 15px rgba(234,88,12,.15),0 8px 24px rgba(124,45,18,.10)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-inferno-forum::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:3px!important;z-index:3!important;background:linear-gradient(90deg,#dc2626,#f97316,#fbbf24,#f97316,#dc2626)!important;background-size:200% 100%!important;animation:chForumInferno 4s linear infinite!important;pointer-events:none!important;
}

/* Neon Grid */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-neon-grid-forum,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-neon-grid-forum.is-collapsed,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-neon-grid-forum.is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-neon-grid-forum.is-collapsed:focus-within{
  border:1px solid rgba(34,211,238,.72)!important;
  background-image:linear-gradient(120deg,rgba(34,211,238,.06),transparent 35%,rgba(139,92,246,.055))!important;
  box-shadow:inset 3px 0 0 #22d3ee,0 0 0 1px rgba(139,92,246,.20),0 0 16px rgba(34,211,238,.13)!important;
}

/* Frost Forge */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-frost-forge-forum,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-frost-forge-forum.is-collapsed,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-frost-forge-forum.is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-frost-forge-forum.is-collapsed:focus-within{
  border:1px solid rgba(125,211,252,.74)!important;
  background-image:linear-gradient(115deg,rgba(224,242,254,.08),rgba(56,189,248,.045) 34%,transparent 72%)!important;
  box-shadow:inset 4px 0 0 #7dd3fc,inset 0 1px 0 rgba(224,242,254,.30),0 0 14px rgba(14,165,233,.12)!important;
}

/* Cosmic Relay */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-cosmic-relay-forum,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-cosmic-relay-forum.is-collapsed,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-cosmic-relay-forum.is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-cosmic-relay-forum.is-collapsed:focus-within{
  border:1px solid rgba(167,139,250,.72)!important;
  background-image:linear-gradient(125deg,rgba(59,130,246,.055),transparent 35%,rgba(168,85,247,.065))!important;
  box-shadow:inset 3px 0 0 #8b5cf6,0 0 15px rgba(124,58,237,.14)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-cosmic-relay-forum::after{
  content:""!important;position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none!important;background:linear-gradient(100deg,transparent 0 38%,rgba(196,181,253,.10) 48%,rgba(125,211,252,.12) 52%,transparent 62%)!important;background-size:240% 100%!important;animation:chForumCosmicRelay 6.5s linear infinite!important;
}

/* Liberty Forge */
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-liberty-forge-forum,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-liberty-forge-forum.is-collapsed,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-liberty-forge-forum.is-collapsed:hover,
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-liberty-forge-forum.is-collapsed:focus-within{
  border:1px solid #315ca8!important;
  background-image:linear-gradient(100deg,rgba(185,28,28,.08),transparent 20%,transparent 80%,rgba(29,78,216,.08))!important;
  box-shadow:inset 4px 0 0 #b91c1c,inset -4px 0 0 #1d4ed8,0 0 16px rgba(37,99,235,.14)!important;
}
body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-liberty-forge-forum::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:2px!important;z-index:3!important;background:linear-gradient(90deg,#b91c1c,#f8fafc,#1d4ed8,#f8fafc,#b91c1c)!important;background-size:220% 100%!important;animation:chLibertyForum 5s linear infinite!important;pointer-events:none!important;
}

/* Dark Titanium composer parity. */
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium,
body.ch-theme-dark .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible].ch-cosmetic-effect-titanium{
  border-color:#667382!important;
  background-image:linear-gradient(105deg,rgba(226,232,240,.09),transparent 20%,rgba(148,163,184,.10) 39%,rgba(226,232,240,.07) 51%,transparent 66%),repeating-linear-gradient(0deg,rgba(148,163,184,.028) 0 1px,transparent 1px 3px)!important;
  box-shadow:inset 4px 0 0 #8b98a7,inset 0 1px 0 rgba(226,232,240,.22),inset 0 -1px 0 rgba(15,23,42,.58),0 0 14px rgba(148,163,184,.08)!important;
}

/* Realtime discussion hint — visually subordinate to the Topic itself. */
body.ch-theme .ch-forums-page .ch-forum-live-conversation{
  border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 18%,var(--ch-forum-border,#dbe3ec))!important;
  background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 3%,var(--ch-forum-bg-soft,#f7f9fc))!important;
  color:var(--ch-forum-text,#334155)!important;
  box-shadow:none!important;
}
body.ch-theme .ch-forums-page .ch-forum-live-conversation button{
  border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 24%,var(--ch-forum-border,#dbe3ec))!important;
  background:var(--ch-forum-bg,#fff)!important;
  color:var(--ch-forum-link,#1769d2)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-live-conversation,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-live-conversation,
body.ch-theme-dark .ch-forums-page .ch-forum-live-conversation{
  background:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 5%,var(--ch-forum-bg-soft,#18263a))!important;
  border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 20%,var(--ch-forum-border,#30435a))!important;
  color:var(--ch-forum-text,#e7eef8)!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-forums-page .ch-forum-composer.ch-cosmetic-slot-forum[data-ch-forum-collapsible]::after{animation:none!important}
}
\n\n/* v0.4.241 — Forums Phase 13: reaction picker optical centering. */
body.ch-theme .ch-forums-page .ch-forum-reaction-picker button,
body > .ch-forum-reaction-picker.is-forum-reaction-portal button{
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  align-content:center!important;
  justify-content:center!important;
  line-height:1!important;
  text-align:center!important;
}
body.ch-theme .ch-forums-page .ch-forum-reaction-picker button .ch-reaction-emoji,
body > .ch-forum-reaction-picker.is-forum-reaction-portal button .ch-reaction-emoji{
  width:100%!important;
  height:100%!important;
  display:grid!important;
  place-items:center!important;
  align-content:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  line-height:1!important;
  text-align:center!important;
  vertical-align:middle!important;
  transform:none!important;
}
body.ch-theme .ch-forums-page .ch-forum-reaction-picker button .ch-reaction-icon-img,
body > .ch-forum-reaction-picker.is-forum-reaction-portal button .ch-reaction-icon-img{
  display:block!important;
  margin:auto!important;
  align-self:center!important;
  justify-self:center!important;
}


/* =========================================================
   v0.4.242 — Forums Phase 14: membership conversion + action-border parity.
   Free Forums remain unchanged. Premium prompts appear only on Forums the
   site owner explicitly maps to membership levels.
   ========================================================= */
body.ch-theme .ch-forums-page .ch-forum-post-engagement{
  --ch-forum-action-border:color-mix(in srgb,var(--ch-forum-text,#334155) 15%,var(--ch-forum-border,#dbe3ec));
  --ch-forum-action-border-hover:color-mix(in srgb,var(--ch-forum-link,#1769d2) 34%,var(--ch-forum-border,#dbe3ec));
}
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-react-button,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-reaction-control > button.ch-forum-reaction-people,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-quote-action{
  border:1px solid var(--ch-forum-action-border)!important;
  border-radius:999px!important;
  box-shadow:none!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-react-button.is-active{
  border-color:var(--ch-forum-action-border)!important;
}
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-react-button:hover,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-react-button:focus-visible,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-reaction-control > button.ch-forum-reaction-people:hover,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-reaction-control > button.ch-forum-reaction-people:focus-visible,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-quote-action:hover,
body.ch-theme .ch-forums-page .ch-forum-post-engagement .ch-forum-quote-action:focus-visible{
  border-color:var(--ch-forum-action-border-hover)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-post-engagement,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-post-engagement,
body.ch-theme-dark .ch-forums-page .ch-forum-post-engagement{
  --ch-forum-action-border:#3a4d64;
  --ch-forum-action-border-hover:#58779a;
}
body.ch-theme .ch-forums-page .ch-forum-row-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.ch-theme .ch-forums-page .ch-forum-premium-badge{border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 20%,var(--ch-forum-border,#dbe3ec));background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 4%,var(--ch-forum-bg,#fff));color:var(--ch-forum-text,#334155)}
body.ch-theme .ch-forums-page .ch-forum-row.is-premium-locked{border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 22%,var(--ch-forum-border,#dbe3ec))}
body.ch-theme .ch-forums-page .ch-forum-membership-gate-card{border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 24%,var(--ch-forum-border,#dbe3ec));background:var(--ch-forum-bg,#fff);color:var(--ch-forum-text,#334155);box-shadow:0 12px 30px rgba(17,35,57,.08)}
body.ch-theme .ch-forums-page .ch-forum-premium-lock{background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 8%,var(--ch-forum-bg-soft,#f7f9fc));color:var(--ch-forum-link,#1769d2)}
body.ch-theme .ch-forums-page .ch-forum-membership-gate-copy h1{color:var(--ch-forum-text-strong,#0f172a)}
body.ch-theme .ch-forums-page .ch-forum-membership-gate-copy p,body.ch-theme .ch-forums-page .ch-forum-membership-gate-copy small{color:var(--ch-forum-muted,#64748b)}
body.ch-theme .ch-forums-page .ch-forum-membership-upgrade{border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 38%,var(--ch-forum-border,#dbe3ec));background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 9%,var(--ch-forum-bg,#fff));color:var(--ch-forum-link,#1769d2)}
body.ch-theme .ch-forums-page .ch-forum-membership-upgrade:hover,body.ch-theme .ch-forums-page .ch-forum-membership-upgrade:focus-visible{background:color-mix(in srgb,var(--ch-forum-link,#1769d2) 14%,var(--ch-forum-bg,#fff));border-color:color-mix(in srgb,var(--ch-forum-link,#1769d2) 55%,var(--ch-forum-border,#dbe3ec))}
body.ch-theme .ch-forums-page .ch-forum-membership-back{border-color:var(--ch-forum-border,#dbe3ec);background:var(--ch-forum-bg,#fff);color:var(--ch-forum-text,#334155)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-membership-gate-card,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-membership-gate-card,body.ch-theme-dark .ch-forums-page .ch-forum-membership-gate-card{background:var(--ch-forum-bg,#111d2c);border-color:color-mix(in srgb,var(--ch-forum-link,#8fc5ff) 25%,var(--ch-forum-border,#30435a));color:var(--ch-forum-text,#e7eef8);box-shadow:0 12px 30px rgba(0,0,0,.24)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-membership-gate-copy h1,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-membership-gate-copy h1,body.ch-theme-dark .ch-forums-page .ch-forum-membership-gate-copy h1{color:var(--ch-forum-text-strong,#f8fbff)}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-premium-badge,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-premium-badge,body.ch-theme-dark .ch-forums-page .ch-forum-premium-badge{background:#172438;border-color:#3a4d64;color:#d8e4f2}

/* v0.4.243 — Forums Phase 15: CommunityHub inline editing / provider parity */
body.ch-theme .ch-forums-page .ch-forum-inline-edit[hidden]{display:none!important}
body.ch-theme .ch-forums-page .ch-forum-post-card.is-editing > .ch-forum-reply-parent-context,
body.ch-theme .ch-forums-page .ch-forum-post-card.is-editing > .ch-forum-media-shell,
body.ch-theme .ch-forums-page .ch-forum-post-card.is-editing > .ch-forum-post-engagement{display:none!important}
body.ch-theme .ch-forums-page .ch-forum-inline-edit{
  margin:6px 0 0!important;
  padding:14px!important;
  gap:12px!important;
  border-radius:14px!important;
  box-shadow:none!important;
  border:1px solid color-mix(in srgb,var(--ch-forum-border,#dbe3ec) 92%,var(--ch-theme-accent,#2f7df4) 8%)!important;
}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 11px;border-radius:11px;
  background:color-mix(in srgb,var(--ch-forum-bg-soft,#f7f9fc) 92%,transparent);
  border:1px solid color-mix(in srgb,var(--ch-forum-border,#dbe3ec) 82%,transparent)
}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>div{display:grid;gap:2px;min-width:0}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>div>span{font-size:.72rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase;color:var(--ch-theme-accent,#2f7df4)!important}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>div>strong{font-size:.88rem;line-height:1.3;color:var(--ch-forum-text-strong,#0f172a)!important}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>button{
  display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;min-width:32px;padding:0!important;
  border:1px solid var(--ch-forum-border,#dbe3ec)!important;border-radius:999px!important;
  background:var(--ch-forum-bg,#fff)!important;color:var(--ch-forum-muted,#5f6f82)!important;
  font-size:20px;line-height:1;cursor:pointer
}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>button:hover,
body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>button:focus-visible{border-color:var(--ch-theme-accent,#2f7df4)!important;color:var(--ch-theme-accent,#2f7df4)!important;outline:none}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-explicit-toggle,
body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-link-preview-option{margin:0!important;min-width:0}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-note{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--ch-theme-accent,#2f7df4) 6%,transparent);color:var(--ch-forum-muted,#5f6f82);font-size:.76rem;font-weight:650}
body.ch-theme .ch-forums-page .ch-forum-inline-edit-note>span:first-child{display:grid;place-items:center;width:18px;height:18px;flex:0 0 18px;border-radius:999px;background:color-mix(in srgb,var(--ch-theme-accent,#2f7df4) 14%,transparent);color:var(--ch-theme-accent,#2f7df4);font-size:11px;font-weight:900}
body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-form-actions{padding-top:2px}
body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-edit-cancel-button{
  background:var(--ch-forum-bg-soft,#f7f9fc)!important;color:var(--ch-forum-text,#172033)!important;
  border:1px solid var(--ch-forum-border,#dbe3ec)!important
}
body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-edit-cancel-button:hover,
body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-edit-cancel-button:focus-visible{background:color-mix(in srgb,var(--ch-theme-accent,#2f7df4) 7%,var(--ch-forum-bg-soft,#f7f9fc))!important;border-color:color-mix(in srgb,var(--ch-theme-accent,#2f7df4) 45%,var(--ch-forum-border,#dbe3ec))!important}
body.ch-theme .ch-forums-page .ch-forum-post-card.is-forum-edit-saved{animation:chForumEditSaved .72s ease both}
@keyframes chForumEditSaved{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ch-theme-accent,#2f7df4) 35%,transparent)}45%{box-shadow:0 0 0 4px color-mix(in srgb,var(--ch-theme-accent,#2f7df4) 14%,transparent)}100%{box-shadow:0 10px 28px rgba(20,39,63,.065)}}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-inline-edit-head,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-inline-edit-head,
body.ch-theme-dark .ch-forums-page .ch-forum-inline-edit-head{background:color-mix(in srgb,var(--ch-forum-bg-soft,#18263a) 90%,transparent);border-color:#34485f}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>div>strong,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-inline-edit-head>div>strong,
body.ch-theme-dark .ch-forums-page .ch-forum-inline-edit-head>div>strong{color:var(--ch-forum-text-strong,#f8fbff)!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-inline-edit-head>button,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-inline-edit-head>button,
body.ch-theme-dark .ch-forums-page .ch-forum-inline-edit-head>button{background:#142235!important;border-color:#3a4f68!important;color:#b6c5d8!important}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-edit-cancel-button,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-inline-edit .ch-forum-edit-cancel-button,
body.ch-theme-dark .ch-forums-page .ch-forum-inline-edit .ch-forum-edit-cancel-button{background:#17263a!important;color:#edf4ff!important;border-color:#3a4f68!important}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-inline-edit{padding:11px!important;border-radius:12px!important}
  body.ch-theme .ch-forums-page .ch-forum-inline-edit-options{grid-template-columns:1fr}
  body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-form-status{grid-column:1/-1;margin:0!important}
  body.ch-theme .ch-forums-page .ch-forum-inline-edit .ch-forum-form-actions button{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){body.ch-theme .ch-forums-page .ch-forum-post-card.is-forum-edit-saved{animation:none!important}}

/* =========================================================
   v0.4.244 — Forums Phase 15: moderation/delete parity.
   Report-threshold blur remains reversible; moderator removal
   replaces Forum content with a clear non-interactive notice.
   ========================================================= */
body.ch-theme .ch-forums-page .ch-forum-post-card.is-forum-moderation-removed{
  border-color:color-mix(in srgb,var(--ch-forum-border,#dbe3ec) 72%,#b42318 28%)!important;
}
body.ch-theme .ch-forums-page .ch-forum-media-shell.is-moderation-removed{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  min-height:0!important;
}
body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:2px 0 0;
  padding:12px 13px;
  border:1px solid color-mix(in srgb,#b42318 28%,var(--ch-forum-border,#dbe3ec));
  border-radius:12px;
  background:color-mix(in srgb,#b42318 4%,var(--ch-forum-bg-soft,#f7f9fc));
  color:var(--ch-forum-text,#334155);
}
body.ch-theme .ch-forums-page .ch-forum-moderation-removed-icon{
  display:grid;
  place-items:center;
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:999px;
  background:color-mix(in srgb,#b42318 11%,transparent);
  color:#b42318;
  font-size:.8rem;
  font-weight:950;
  line-height:1;
}
body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice>span:last-child{
  display:grid;
  gap:3px;
  min-width:0;
}
body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice strong{
  color:var(--ch-forum-text-strong,#0f172a);
  font-size:.88rem;
  line-height:1.25;
}
body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice small{
  color:var(--ch-forum-muted,#64748b);
  font-size:.76rem;
  line-height:1.35;
}
body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice .ch-forum-moderation-reason{
  margin-top:2px;
  font-weight:700;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-post-card.is-forum-moderation-removed,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-post-card.is-forum-moderation-removed,
body.ch-theme-dark .ch-forums-page .ch-forum-post-card.is-forum-moderation-removed{
  border-color:#6a4147!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-moderation-removed-notice,
body.ch-theme-dark .ch-forums-page .ch-forum-moderation-removed-notice{
  background:#21191f;
  border-color:#664047;
  color:#e7eef8;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice strong,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-moderation-removed-notice strong,
body.ch-theme-dark .ch-forums-page .ch-forum-moderation-removed-notice strong{
  color:#f8fbff;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice small,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-moderation-removed-notice small,
body.ch-theme-dark .ch-forums-page .ch-forum-moderation-removed-notice small{
  color:#c3b4b8;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-forums-page .ch-forum-moderation-removed-icon,
body.ch-theme-mode-dark .ch-forums-page .ch-forum-moderation-removed-icon,
body.ch-theme-dark .ch-forums-page .ch-forum-moderation-removed-icon{
  background:#3b2228;
  color:#ff9ca7;
}
@media(max-width:700px){
  body.ch-theme .ch-forums-page .ch-forum-moderation-removed-notice{padding:10px 11px;border-radius:11px}
}

/* =========================================================
   v0.4.247 — Hooligan Rush stable stage / full-camera recovery.
   One measured internal viewport owns every game screen so the outer card
   stays stationary while Character, Level, Game, Failed and Results swap.
   ========================================================= */
body.ch-theme .ch-rush:not(.ch-rush--compact){
  max-width:1040px!important;
}
body.ch-theme .ch-rush .ch-rush-flow{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto var(--ch-rush-screen-height,auto)!important;
  align-items:stretch!important;
  align-content:start!important;
  overflow:visible!important;
}
body.ch-theme .ch-rush .ch-rush-preplay-toolbar{
  grid-column:1!important;
  grid-row:1!important;
  align-self:start!important;
}
body.ch-theme .ch-rush .ch-rush-screen{
  grid-column:1!important;
  grid-row:2!important;
  width:100%!important;
  height:var(--ch-rush-screen-height,auto)!important;
  min-height:var(--ch-rush-screen-height,0px)!important;
  max-height:none!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="character"],
body.ch-theme .ch-rush [data-rush-screen-panel="level"]{
  align-content:center!important;
  justify-content:stretch!important;
}
body.ch-theme .ch-rush [data-rush-screen-panel="game"]{
  align-content:start!important;
  height:var(--ch-rush-screen-height,auto)!important;
  min-height:var(--ch-rush-screen-height,0px)!important;
}
body.ch-theme .ch-rush .ch-rush-failed-screen,
body.ch-theme .ch-rush .ch-rush-results-screen{
  align-content:center!important;
  justify-items:center!important;
  height:var(--ch-rush-screen-height,auto)!important;
  min-height:var(--ch-rush-screen-height,0px)!important;
}

/* Camera/playfield recovery: give the runner more sky and more look-ahead.
   The stage itself remains the clipping boundary for moving hazards only. */
body.ch-theme .ch-rush:not(.ch-rush--compact) .ch-rush-stage{
  height:clamp(280px,56cqi,560px)!important;
}
body.ch-theme .ch-rush--compact .ch-rush-stage{
  height:clamp(210px,80cqi,270px)!important;
}
body.ch-theme .ch-rush .ch-rush-player{
  left:8%!important;
}
body.ch-theme .ch-rush--compact .ch-rush-player{
  left:7%!important;
}

/* The failed/result state must always fit the rail's stable internal stage. */
body.ch-theme .ch-rush--compact .ch-rush-failed-card,
body.ch-theme .ch-rush--compact .ch-rush-result-card{
  width:min(100%,420px)!important;
  padding:11px!important;
  gap:7px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card h3,
body.ch-theme .ch-rush--compact .ch-rush-result-card h3{
  font-size:18px!important;
  line-height:1.08!important;
  margin:2px 0 4px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card p,
body.ch-theme .ch-rush--compact .ch-rush-result-card p{
  font-size:10px!important;
  line-height:1.35!important;
}
body.ch-theme .ch-rush--compact .ch-rush-result-stats{
  margin:7px auto 0!important;
  gap:6px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-result-stats>div{
  padding:7px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-continue-label{
  margin-top:2px!important;
  padding:6px 10px!important;
  font-size:10px!important;
}

body.ch-theme .ch-rush:fullscreen .ch-rush-stage,
body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-stage{
  height:clamp(340px,64dvh,780px)!important;
}
@media(max-width:520px){
  body.ch-theme .ch-rush:not(.ch-rush--compact) .ch-rush-stage{
    height:clamp(260px,72vw,380px)!important;
  }
  body.ch-theme .ch-rush:fullscreen .ch-rush-stage,
  body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-stage{
    height:clamp(280px,58dvh,560px)!important;
  }
}


/* =========================================================
   v0.4.248 — Hooligan Rush playable-camera proportion recovery.
   Keep the v0.4.247 stationary measured screen shell, but stop scaling the
   gameplay camera from raw viewport height. The runner only needs enough
   vertical room for its full jump arc plus deliberate headroom; the rest of
   the available space belongs to the stable screen shell, not empty sky.
   ========================================================= */
body.ch-theme .ch-rush:not(.ch-rush--compact) .ch-rush-stage{
  height:clamp(390px,42cqi,440px)!important;
  min-height:390px!important;
  max-height:440px!important;
}
body.ch-theme .ch-rush:fullscreen .ch-rush-stage,
body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-stage{
  height:clamp(410px,44dvh,500px)!important;
  min-height:410px!important;
  max-height:500px!important;
}

/* The rail failure state was only a few pixels taller than the compact
   stable viewport. Tighten its own chrome rather than changing the widget's
   working character/level/game dimensions. */
body.ch-theme .ch-rush--compact .ch-rush-failed-screen{
  padding:0!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card{
  padding:8px!important;
  gap:5px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card .ch-rush-result-kicker{
  font-size:9px!important;
  line-height:1.1!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card h3{
  font-size:16px!important;
  line-height:1.05!important;
  margin:1px 0 2px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card p{
  font-size:9.5px!important;
  line-height:1.25!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card .ch-rush-result-stats{
  margin:4px auto 0!important;
  gap:5px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card .ch-rush-result-stats>div{
  padding:5px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card .ch-rush-result-stats span{
  font-size:8.5px!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-card .ch-rush-result-stats strong{
  font-size:15px!important;
  line-height:1.05!important;
}
body.ch-theme .ch-rush--compact .ch-rush-failed-continue-label{
  margin-top:0!important;
  padding:4px 8px!important;
  font-size:9px!important;
  line-height:1.1!important;
}

@media(max-width:520px){
  body.ch-theme .ch-rush:not(.ch-rush--compact) .ch-rush-stage{
    height:clamp(300px,68vw,360px)!important;
    min-height:300px!important;
    max-height:360px!important;
  }
  body.ch-theme .ch-rush:fullscreen .ch-rush-stage,
  body.ch-theme .ch-rush:-webkit-full-screen .ch-rush-stage{
    height:clamp(320px,46dvh,400px)!important;
    min-height:320px!important;
    max-height:400px!important;
  }
}


/* =========================================================
   v0.4.249 — Better Messages group-call tile swap stability.
   Better Messages owns participant ordering, active-speaker selection,
   pinning, and WebRTC media. Its stock CSS animates each live video tile's
   top/left/width/height for 0.5s whenever the grid is recalculated. Moving
   and resizing live video elements through that transition can visibly
   stretch/flicker during active-speaker swaps. CommunityHub does not change
   the target layout; it only makes provider-owned geometry changes atomic.
   ========================================================= */
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group .bp-messages-group-call-videos-grid,
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group .bp-messages-group-call-videos-grid-primary,
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group .bp-messages-group-call-videos-grid-secondary{
  transition:none!important;
}
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group .bp-messages-group-call-videos-grid .bp-messages-group-call-input-video{
  transition:none!important;
  will-change:auto!important;
}

/* Keep Better Messages' own active-speaker highlight and media ownership.
   We intentionally do not override the inner tile's speaker box-shadow,
   video object-fit, pin state, or provider-calculated dimensions. */

/* =========================================================
   v0.4.250 — Better Messages sensitive-message blur/reveal.
   Better Messages owns the conversation/message renderer. CommunityHub only
   decorates messages whose BM message metadata carries chSensitive=true.
   Sender identity, timestamps, reactions, and BM controls remain readable.
   ========================================================= */
body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .bm-message-content{
  position:relative;
}

body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message:not(.ch-bm-sensitive-own):not(.ch-bm-sensitive-revealed)
.bm-message-content > :not(.message-controls):not(.bm-reactions):not(.bm-reactions-selector):not(.ch-bm-sensitive-toggle):not(.ch-bm-sensitive-own-marker){
  filter:blur(10px)!important;
  opacity:.62!important;
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}

body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:34px!important;
  margin:7px 0 1px!important;
  padding:7px 11px!important;
  border:1px solid rgba(var(--bm-border-color,120,132,148),.52)!important;
  border-radius:10px!important;
  background:rgba(var(--bm-bg-secondary,245,247,250),.88)!important;
  color:rgb(var(--bm-text-color,23,32,51))!important;
  box-shadow:none!important;
  font:inherit!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.25!important;
  text-align:center!important;
  cursor:pointer!important;
  transition:border-color .16s ease,background-color .16s ease,transform .16s ease!important;
}
body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle:hover,
body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle:focus-visible{
  border-color:color-mix(in srgb,var(--ch-theme-primary,#2563eb) 58%,transparent)!important;
  background:color-mix(in srgb,var(--ch-theme-primary,#2563eb) 9%,rgba(var(--bm-bg-secondary,245,247,250),1))!important;
  outline:none!important;
}
body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle:active{
  transform:translateY(1px)!important;
}

body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-own .ch-bm-sensitive-own-marker{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:6px 0 0!important;
  padding:3px 7px!important;
  border:1px solid rgba(var(--bm-border-color,120,132,148),.44)!important;
  border-radius:999px!important;
  background:rgba(var(--bm-bg-secondary,245,247,250),.74)!important;
  color:rgba(var(--bm-text-color,23,32,51),.72)!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.2!important;
}

body.bm-messages-dark.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle,
html[data-ch-theme-mode="dark"] body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle{
  border-color:rgba(148,163,184,.34)!important;
  background:rgba(15,23,42,.72)!important;
  color:rgb(var(--bm-text-color-dark,238,244,252))!important;
}
body.bm-messages-dark.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-own .ch-bm-sensitive-own-marker,
html[data-ch-theme-mode="dark"] body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-own .ch-bm-sensitive-own-marker{
  border-color:rgba(148,163,184,.28)!important;
  background:rgba(15,23,42,.58)!important;
  color:rgba(var(--bm-text-color-dark,238,244,252),.76)!important;
}

@media(max-width:782px){
  body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle{
    min-height:38px!important;
    font-size:12px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme .bp-messages-wrap .bm-message.ch-bm-sensitive-message .ch-bm-sensitive-toggle{
    transition:none!important;
  }
}

/* =========================================================
   v0.4.252 — Better Messages active-speaker + tile-motion recovery.
   Better Messages/LiveKit remains authoritative for participant order,
   pinning, speaking state, WebRTC tracks, and screen sharing.

   Recovery rules:
   - Never animate live tile width/height; resizing video during a swap causes
     visible stretching/flicker.
   - Camera/avatar tiles may animate position only (top/left) for a short,
     controlled handoff.
   - Screen-share tiles snap atomically and never travel across the grid.
   - Speaking feedback is owned by BM's real bpbm-active-speaker state and is
     rendered as an inset/outer glow without changing tile geometry.
   ========================================================= */
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-videos-grid,
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-videos-grid-primary,
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-videos-grid-secondary{
  transition:none!important;
}

body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-videos-grid .bp-messages-group-call-input-video{
  transition:top .18s cubic-bezier(.2,.8,.2,1),left .18s cubic-bezier(.2,.8,.2,1)!important;
  will-change:top,left!important;
}

/* Shared displays are the visually heaviest live tiles. Keep them stationary
   during provider layout changes rather than animating a high-resolution
   MediaStream across the grid. */
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-videos-grid .bp-messages-group-call-input-video-screen{
  transition:none!important;
  will-change:auto!important;
}

/* Restore unmistakable active-speaker feedback independently of geometry.
   BM adds/removes .bpbm-active-speaker from this exact inner element. */
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-input-video > .bp-messages-group-call-input-video-inner{
  transition:box-shadow .16s ease,background-color .16s ease!important;
}
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-input-video > .bp-messages-group-call-input-video-inner.bpbm-active-speaker{
  box-shadow:
    inset 0 0 0 3px rgba(var(--bm-button-bg,47,125,244),.96),
    0 0 12px 2px rgba(var(--bm-button-bg,47,125,244),.58)!important;
}

/* Screen-share media itself stays provider-owned and contained, with no
   CommunityHub animation or paint containment that could clip the speaker glow. */
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-input-video-screen .bpbm-media-container.bpbm-screen-shared{
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  transition:none!important;
  will-change:auto!important;
}
body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
.bp-messages-group-call-input-video-screen .bpbm-media-container.bpbm-screen-shared
> video[datatype="screen"]{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  transition:none!important;
  animation:none!important;
  backface-visibility:hidden!important;
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
  .bp-messages-group-call-videos-grid .bp-messages-group-call-input-video,
  body.ch-theme .bp-messages-wrap .bp-messages-call-wrap-group
  .bp-messages-group-call-input-video > .bp-messages-group-call-input-video-inner{
    transition:none!important;
  }
}


/* v0.4.253 — Community multi-photo posts */
.ch-theme .ch-composer-preview.is-multi-image{margin-top:12px!important}
.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item{border-color:color-mix(in srgb,var(--ch-border,#dbe3ec) 88%,transparent)!important;background:var(--ch-surface,#fff)!important;box-shadow:0 4px 14px rgba(15,23,42,.06)!important}
.ch-theme .ch-activity-media.ch-attachment-gallery{margin-top:10px!important;background:color-mix(in srgb,var(--ch-surface,#fff) 94%,#000 6%)!important}
html[data-ch-theme-mode="dark"] .ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item,body.ch-theme-mode-dark .ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item{border-color:rgba(148,163,184,.24)!important;background:#0f1b2a!important;box-shadow:0 5px 18px rgba(0,0,0,.2)!important}
html[data-ch-theme-mode="dark"] .ch-theme .ch-activity-media.ch-attachment-gallery,body.ch-theme-mode-dark .ch-theme .ch-activity-media.ch-attachment-gallery{background:#0b1420!important}


/* v0.4.254 — Community Multi-Photo v2 polish */
.ch-theme .ch-composer-upload-progress{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 24%,var(--ch-border,#dbe3ec))!important;background:color-mix(in srgb,var(--ch-surface,#fff) 96%,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 4%)!important}
.ch-theme .ch-composer-upload-progress-track>span{color:var(--ch-theme-accent,var(--ch-accent,#2563eb))!important}
.ch-theme .ch-multi-photo-grid .ch-multi-photo-trigger{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 20%,var(--ch-border,#dbe3ec))!important;box-shadow:0 4px 14px rgba(15,23,42,.07)!important}
.ch-theme .ch-multi-photo-grid .ch-multi-photo-trigger:hover{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 48%,var(--ch-border,#dbe3ec))!important;box-shadow:0 8px 20px rgba(15,23,42,.11)!important}
.ch-theme .ch-photo-stack-card{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 22%,var(--ch-border,#dbe3ec))!important;background:var(--ch-surface,#fff)!important}
.ch-theme .ch-photo-stack-count{background:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 30%,rgba(15,23,42,.88))!important;border:1px solid rgba(255,255,255,.16)!important}
html[data-ch-theme-mode="dark"] .ch-theme .ch-composer-upload-progress,body.ch-theme-mode-dark .ch-theme .ch-composer-upload-progress{background:color-mix(in srgb,#0f1b2a 94%,var(--ch-theme-accent,var(--ch-accent,#60a5fa)) 6%)!important;border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#60a5fa)) 32%,#334155)!important}
html[data-ch-theme-mode="dark"] .ch-theme .ch-composer-upload-progress-track,body.ch-theme-mode-dark .ch-theme .ch-composer-upload-progress-track{background:#263548!important}
html[data-ch-theme-mode="dark"] .ch-theme .ch-multi-photo-grid .ch-multi-photo-trigger,body.ch-theme-mode-dark .ch-theme .ch-multi-photo-grid .ch-multi-photo-trigger{border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#60a5fa)) 28%,#334155)!important;box-shadow:0 5px 18px rgba(0,0,0,.24)!important}
html[data-ch-theme-mode="dark"] .ch-theme .ch-photo-stack-card,body.ch-theme-mode-dark .ch-theme .ch-photo-stack-card{background:#0f1b2a!important;border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#60a5fa)) 28%,#334155)!important;box-shadow:0 17px 38px rgba(0,0,0,.42)!important}

/* =========================================================
   v0.4.255 — Community photo remove control + My Account title polish
   ========================================================= */

/* Multi-photo composer: center the remove X independently of font baselines. */
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment{
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  font-size:0!important;
  line-height:0!important;
  text-align:center!important;
  overflow:hidden!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment::before,
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:12px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transform-origin:center;
  pointer-events:none;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment::before{
  transform:translate(-50%,-50%) rotate(45deg);
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment::after{
  transform:translate(-50%,-50%) rotate(-45deg);
}

/* WooCommerce My Account: keep the primary page title visually centered. */
body.ch-theme.woocommerce-account .ch-theme-page-header{
  text-align:center!important;
}
body.ch-theme.woocommerce-account .ch-theme-page-header h1{
  width:100%!important;
  margin-inline:auto!important;
  text-align:center!important;
}


/* =========================================================
   v0.4.256 — Community composer attachment hover affordance
   ========================================================= */
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item{
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, filter .16s ease!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(8,15,28,.00) 0%, rgba(8,15,28,.00) 52%, rgba(8,15,28,.12) 100%);
  opacity:0;
  transition:opacity .16s ease!important;
  pointer-events:none;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment{
  transition:opacity .16s ease, transform .16s ease, background .16s ease, box-shadow .16s ease!important;
  box-shadow:0 8px 18px rgba(8,15,28,.18)!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover,
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within{
  transform:translateY(-2px)!important;
  border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#2563eb)) 30%,var(--ch-border,#dbe3ec))!important;
  box-shadow:0 10px 22px rgba(15,23,42,.12)!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover::after,
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within::after{
  opacity:1!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover .ch-remove-attachment,
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within .ch-remove-attachment{
  background:rgba(220,38,38,.94)!important;
  box-shadow:0 12px 22px rgba(185,28,28,.28)!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover img,
body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within img{
  filter:brightness(.93)!important;
}
@media (hover:hover) and (pointer:fine){
  body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment{
    opacity:.18!important;
    transform:translateY(-3px) scale(.86)!important;
  }
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover .ch-remove-attachment,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within .ch-remove-attachment{
    opacity:1!important;
    transform:translateY(0) scale(1)!important;
  }
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within,
body.ch-theme-mode-dark .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover,
body.ch-theme-mode-dark .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within{
  border-color:color-mix(in srgb,var(--ch-theme-accent,var(--ch-accent,#60a5fa)) 36%,#334155)!important;
  box-shadow:0 12px 26px rgba(0,0,0,.30)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item::after,
body.ch-theme-mode-dark .ch-composer-preview.is-multi-image .ch-composer-preview-item::after{
  background:linear-gradient(180deg, rgba(4,10,20,.00) 0%, rgba(4,10,20,.04) 52%, rgba(4,10,20,.34) 100%);
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item::after,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item img{
    transition:none!important;
  }
}


/* =========================================================
   v0.4.257 — Community composer remove control premium polish
   ========================================================= */
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment{
  position:absolute!important;
  right:8px!important;
  top:8px!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  min-height:32px!important;
  border:1px solid rgba(255,255,255,.78)!important;
  border-radius:999px!important;
  background:linear-gradient(180deg, rgba(18,27,40,.82) 0%, rgba(10,16,26,.92) 100%)!important;
  color:#ffffff!important;
  box-shadow:0 10px 24px rgba(8,15,28,.24), inset 0 1px 0 rgba(255,255,255,.16)!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment::before,
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment::after{
  width:12px!important;
  height:2px!important;
  background:currentColor!important;
  border-radius:999px!important;
  box-shadow:0 0 0 0.35px currentColor!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:hover,
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:focus-visible{
  border-color:rgba(255,255,255,.92)!important;
  background:linear-gradient(180deg, rgba(239,68,68,.96) 0%, rgba(220,38,38,.98) 100%)!important;
  color:#fff!important;
  box-shadow:0 14px 28px rgba(185,28,28,.34), inset 0 1px 0 rgba(255,255,255,.18)!important;
  transform:translateY(0) scale(1.03)!important;
}
body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:focus-visible{
  outline:none!important;
  box-shadow:0 0 0 3px rgba(255,255,255,.52), 0 14px 28px rgba(185,28,28,.34), inset 0 1px 0 rgba(255,255,255,.18)!important;
}
@media (hover:hover) and (pointer:fine){
  body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment{
    opacity:0!important;
    transform:translateY(-4px) scale(.82)!important;
  }
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:hover .ch-remove-attachment,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-composer-preview-item:focus-within .ch-remove-attachment{
    opacity:1!important;
    transform:translateY(0) scale(1)!important;
  }
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment,
body.ch-theme-mode-dark .ch-composer-preview.is-multi-image .ch-remove-attachment{
  border-color:rgba(255,255,255,.22)!important;
  background:linear-gradient(180deg, rgba(20,30,45,.84) 0%, rgba(9,15,24,.94) 100%)!important;
  box-shadow:0 12px 26px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.10)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:hover,
html[data-ch-theme-mode="dark"] body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:focus-visible,
body.ch-theme-mode-dark .ch-composer-preview.is-multi-image .ch-remove-attachment:hover,
body.ch-theme-mode-dark .ch-composer-preview.is-multi-image .ch-remove-attachment:focus-visible{
  border-color:rgba(255,255,255,.30)!important;
  background:linear-gradient(180deg, rgba(248,113,113,.96) 0%, rgba(220,38,38,.98) 100%)!important;
}
@media(prefers-reduced-motion:reduce){
  body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:hover,
  body.ch-theme .ch-composer-preview.is-multi-image .ch-remove-attachment:focus-visible{
    transform:none!important;
  }
}

/* =========================================================
   v0.4.261 — Standalone PMPro Login Page Polish
   PMPro remains authentication owner. This only constrains and centers the
   standalone login experience so it does not stretch across the page.
   ========================================================= */
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){
  width:min(100%,540px)!important;
  max-width:540px!important;
  margin:clamp(22px,4vw,54px) auto!important;
  padding:clamp(22px,3vw,30px)!important;
}
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *)::before{
  margin-bottom:18px!important;
}
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *) form{
  max-width:100%!important;
  margin-top:18px!important;
  gap:15px!important;
}
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *) :is(.pmpro_actions_nav,#nav,.login-links,.pmpro_login_links){
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px 14px!important;
  margin:16px 0 0!important;
  padding-top:14px!important;
  border-top:1px solid var(--ch-login-border)!important;
  text-align:center!important;
}
body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *) > :last-child{
  margin-bottom:0!important;
}

@media(max-width:781px){
  body.ch-theme :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){
    width:100%!important;
    max-width:100%!important;
    margin:16px auto 26px!important;
    padding:20px 18px!important;
  }
}


/* =========================================================
   v0.4.262 — PMPro Login Title + Password Toggle Recovery
   Cross-viewport presentation only. Authentication remains PMPro-owned.
   ========================================================= */
body.ch-theme-pmpro-login-page .ch-theme-page-shell{
  box-sizing:border-box!important;
  width:min(100%,620px)!important;
  max-width:620px!important;
  margin-inline:auto!important;
}
body.ch-theme-pmpro-login-page .ch-theme-page-header{
  box-sizing:border-box!important;
  width:min(100%,540px)!important;
  max-width:540px!important;
  margin:clamp(26px,4vw,46px) auto 10px!important;
  padding:0 4px!important;
  text-align:center!important;
}
body.ch-theme-pmpro-login-page .ch-theme-page-header h1{
  margin:0!important;
  color:var(--ch-theme-text,#172033)!important;
  font-size:clamp(1.65rem,2.2vw,2.2rem)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  text-align:center!important;
}
body.ch-theme-pmpro-login-page .ch-theme-page-content{
  width:100%!important;
  max-width:100%!important;
}
body.ch-theme-pmpro-login-page :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){
  margin-top:14px!important;
}

/* WordPress/PMPro password reveal controls: keep them small, intentional and
   attached to the field instead of allowing provider button defaults to become
   a full-size secondary CTA. */
body.ch-theme-pmpro-login-page :is(.wp-pwd,.pmpro_form_field-password,.pmpro_form_field_password,.login-password,.user-pass-wrap){
  position:relative!important;
}
body.ch-theme-pmpro-login-page .wp-pwd :is(input[type="password"],input[type="text"]){
  padding-right:52px!important;
}
body.ch-theme-pmpro-login-page .wp-pwd .wp-hide-pw{
  position:absolute!important;
  right:6px!important;
  top:50%!important;
  z-index:2!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  padding:0!important;
  transform:translateY(-50%)!important;
  border:1px solid color-mix(in srgb,var(--ch-login-accent) 22%,var(--ch-login-border))!important;
  border-radius:10px!important;
  background:var(--ch-login-panel)!important;
  color:var(--ch-login-muted)!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
body.ch-theme-pmpro-login-page .wp-pwd .wp-hide-pw:hover,
body.ch-theme-pmpro-login-page .wp-pwd .wp-hide-pw:focus-visible{
  border-color:color-mix(in srgb,var(--ch-login-accent) 55%,var(--ch-login-border))!important;
  background:color-mix(in srgb,var(--ch-login-accent) 7%,var(--ch-login-panel))!important;
  color:var(--ch-login-accent)!important;
  outline:none!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-login-accent) 12%,transparent)!important;
}
body.ch-theme-pmpro-login-page .wp-pwd .wp-hide-pw .dashicons{
  width:18px!important;
  height:18px!important;
  font-size:18px!important;
  line-height:18px!important;
}
body.ch-theme-pmpro-login-page :is(.pmpro_form_field-password,.pmpro_form_field_password,.login-password,.user-pass-wrap) :is(button[type="button"],input[type="button"]):not(.wp-hide-pw),
body.ch-theme-pmpro-login-page form :is(button[type="button"],input[type="button"])[aria-label*="password" i]{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  min-height:34px!important;
  margin:7px 0 0!important;
  padding:6px 10px!important;
  border:1px solid var(--ch-login-border)!important;
  border-radius:999px!important;
  background:var(--ch-login-panel-soft)!important;
  color:var(--ch-login-muted)!important;
  box-shadow:none!important;
  font-size:.78rem!important;
  line-height:1!important;
  font-weight:750!important;
}
body.ch-theme-pmpro-login-page :is(.pmpro_form_field-password,.pmpro_form_field_password,.login-password,.user-pass-wrap) :is(button[type="button"],input[type="button"]):not(.wp-hide-pw):hover,
body.ch-theme-pmpro-login-page form :is(button[type="button"],input[type="button"])[aria-label*="password" i]:hover{
  border-color:color-mix(in srgb,var(--ch-login-accent) 45%,var(--ch-login-border))!important;
  color:var(--ch-login-accent)!important;
}

/* Tablet: preserve the centered product feel without wasting horizontal room. */
@media (min-width:782px) and (max-width:1100px){
  body.ch-theme-pmpro-login-page .ch-theme-page-shell{width:min(100%,600px)!important;max-width:600px!important}
  body.ch-theme-pmpro-login-page .ch-theme-page-header{width:min(100%,520px)!important;max-width:520px!important}
  body.ch-theme-pmpro-login-page :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){width:min(100%,520px)!important;max-width:520px!important}
}

/* Mobile: full usable width with deliberate edge breathing room and 16px
   inputs so iOS does not zoom the page. */
@media(max-width:781px){
  body.ch-theme-pmpro-login-page .ch-theme-page-shell{
    width:100%!important;
    max-width:100%!important;
    padding-inline:14px!important;
  }
  body.ch-theme-pmpro-login-page .ch-theme-page-header{
    width:100%!important;
    max-width:100%!important;
    margin:22px auto 8px!important;
    padding-inline:8px!important;
  }
  body.ch-theme-pmpro-login-page .ch-theme-page-header h1{font-size:clamp(1.5rem,7vw,1.85rem)!important}
  body.ch-theme-pmpro-login-page :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *){
    width:100%!important;
    max-width:100%!important;
    margin:10px auto 24px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme-pmpro-login-page .wp-pwd .wp-hide-pw{transition:none!important}
}
/* Any remaining provider-owned non-submit control inside the standalone login
   form is a secondary utility (normally Show/Hide Password), never a primary
   full-width action. */
body.ch-theme-pmpro-login-page :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *) form :is(button[type="button"],input[type="button"]):not(.wp-hide-pw){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:34px!important;
  margin:7px 0 0!important;
  padding:6px 11px!important;
  border:1px solid var(--ch-login-border)!important;
  border-radius:999px!important;
  background:var(--ch-login-panel-soft)!important;
  color:var(--ch-login-muted)!important;
  box-shadow:none!important;
  font-size:.78rem!important;
  line-height:1!important;
  font-weight:750!important;
}
body.ch-theme-pmpro-login-page :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *) form :is(button[type="button"],input[type="button"]):not(.wp-hide-pw):hover,
body.ch-theme-pmpro-login-page :is(.pmpro_login_wrap,.pmpro_login):not(.ch-theme-widget *) form :is(button[type="button"],input[type="button"]):not(.wp-hide-pw):focus-visible{
  border-color:color-mix(in srgb,var(--ch-login-accent) 50%,var(--ch-login-border))!important;
  color:var(--ch-login-accent)!important;
  outline:none!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-login-accent) 10%,transparent)!important;
}

/* =========================================================
   v0.4.263 — Compact Default Action Controls + PNFPB Prompt Polish
   Presentation only. Special/locked CommunityHub controls keep their later,
   component-specific rules and are intentionally not normalized here.
   ========================================================= */
body.ch-theme #pnfpb-push-dialog-container{
  box-sizing:border-box!important;
  width:min(92vw,460px)!important;
  max-width:460px!important;
  max-height:min(78vh,680px)!important;
  overflow:auto!important;
  margin:0 auto!important;
  padding:18px!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:18px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#172033)!important;
  box-shadow:0 24px 70px rgba(15,23,42,.24),0 3px 14px rgba(15,23,42,.1)!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(h1,h2,h3,h4,h5,strong,label){
  color:var(--ch-theme-text,#172033)!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(p,span,small){
  color:var(--ch-theme-text-muted,#64748b);
}
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"],input[type="submit"],a.button){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:auto!important;
  min-width:0!important;
  min-height:36px!important;
  margin:0!important;
  padding:7px 11px!important;
  border-radius:10px!important;
  box-shadow:none!important;
  font-size:.82rem!important;
  font-weight:800!important;
  line-height:1.15!important;
  text-align:center!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"],input[type="submit"]):not([aria-label*="close" i]):not([title*="close" i]){
  border:1px solid color-mix(in srgb,var(--ch-theme-blue-dark,#0068cc) 72%,#0b65b8 28%)!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--ch-theme-blue,#0080ff) 94%,#fff 6%),var(--ch-theme-blue-dark,#0068cc))!important;
  color:#fff!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"],input[type="submit"]):not([aria-label*="close" i]):not([title*="close" i]):hover,
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"],input[type="submit"]):not([aria-label*="close" i]):not([title*="close" i]):focus-visible{
  filter:brightness(.97)!important;
  outline:none!important;
  box-shadow:0 0 0 3px rgba(0,128,255,.11)!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"])[aria-label*="close" i],
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"])[title*="close" i],
body.ch-theme #pnfpb-push-dialog-container .ui-dialog-titlebar-close{
  display:grid!important;
  place-items:center!important;
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;
  border:1px solid var(--ch-theme-border,#dbe3ec)!important;
  border-radius:9px!important;
  background:var(--ch-theme-surface-soft,#f5f7fa)!important;
  color:var(--ch-theme-text-muted,#64748b)!important;
  box-shadow:none!important;
  font-size:18px!important;
  line-height:1!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"])[aria-label*="close" i] :is(span,svg,i),
body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"])[title*="close" i] :is(span,svg,i),
body.ch-theme #pnfpb-push-dialog-container .ui-dialog-titlebar-close :is(span,svg,i){
  display:grid!important;
  place-items:center!important;
  margin:auto!important;
  line-height:1!important;
}
body.ch-theme #pnfpb-push-dialog-container :is(input[type="checkbox"],input[type="radio"]){
  width:auto!important;
  min-width:16px!important;
  min-height:16px!important;
}

@supports selector(.ui-dialog:has(#pnfpb-push-dialog-container)){
  body.ch-theme .ui-dialog:has(#pnfpb-push-dialog-container){
    max-width:min(94vw,480px)!important;
    border:0!important;
    border-radius:18px!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.ch-theme .ui-dialog:has(#pnfpb-push-dialog-container) .ui-dialog-titlebar{
    border:0!important;
    background:transparent!important;
  }
  body.ch-theme .ui-dialog:has(#pnfpb-push-dialog-container) .ui-dialog-titlebar-close{
    display:grid!important;
    place-items:center!important;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    padding:0!important;
    border-radius:9px!important;
    box-shadow:none!important;
  }
}

html[data-ch-theme-mode="dark"] body.ch-theme #pnfpb-push-dialog-container,
body.ch-theme-mode-dark #pnfpb-push-dialog-container,
body.ch-theme-dark #pnfpb-push-dialog-container{
  border-color:#33475f!important;
  background:#121e2e!important;
  color:#edf4ff!important;
  box-shadow:0 28px 76px rgba(0,0,0,.46)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme #pnfpb-push-dialog-container :is(h1,h2,h3,h4,h5,strong,label),
body.ch-theme-mode-dark #pnfpb-push-dialog-container :is(h1,h2,h3,h4,h5,strong,label),
body.ch-theme-dark #pnfpb-push-dialog-container :is(h1,h2,h3,h4,h5,strong,label){color:#edf4ff!important}
html[data-ch-theme-mode="dark"] body.ch-theme #pnfpb-push-dialog-container :is(p,span,small),
body.ch-theme-mode-dark #pnfpb-push-dialog-container :is(p,span,small),
body.ch-theme-dark #pnfpb-push-dialog-container :is(p,span,small){color:#b8c8dc}

@media(max-width:700px){
  body.ch-theme #pnfpb-push-dialog-container{
    width:min(calc(100vw - 20px),460px)!important;
    max-height:calc(100dvh - 24px)!important;
    padding:16px!important;
    border-radius:16px!important;
  }
  body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"],input[type="submit"],a.button){
    min-height:40px!important;
    padding:8px 12px!important;
  }
  body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"])[aria-label*="close" i],
  body.ch-theme #pnfpb-push-dialog-container :is(button,input[type="button"])[title*="close" i],
  body.ch-theme #pnfpb-push-dialog-container .ui-dialog-titlebar-close{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    padding:0!important;
  }
}

/* =========================================================
   v0.4.264 — Primary Menu Icons
   - Automatic icons for the main header menu.
   - Per-item built-in/custom-image overrides from Appearance > Menus.
   - Same readable alignment on desktop, tablet, mobile, and dropdowns.
   ========================================================= */
body.ch-theme .ch-theme-primary-menu a{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
body.ch-theme .ch-theme-primary-menu .sub-menu a,
body.ch-theme .ch-theme-primary-menu--mobile a{
  display:flex;
  align-items:center;
}
body.ch-theme .ch-theme-primary-menu-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 17px;
  width:17px;
  height:17px;
  line-height:1;
  color:currentColor;
}
body.ch-theme .ch-theme-primary-menu-icon svg,
body.ch-theme .ch-theme-primary-menu-icon img{
  display:block;
  width:100%;
  height:100%;
}
body.ch-theme .ch-theme-primary-menu-icon svg{overflow:visible}
body.ch-theme .ch-theme-primary-menu-icon--custom{
  flex-basis:18px;
  width:18px;
  height:18px;
}
body.ch-theme .ch-theme-primary-menu-icon--custom img{
  object-fit:contain;
  border-radius:3px;
}
body.ch-theme .ch-theme-primary-menu-label{
  display:inline-block;
  min-width:0;
}
@media(max-width:782px){
  body.ch-theme .ch-theme-primary-menu--mobile a{gap:9px}
  body.ch-theme .ch-theme-primary-menu--mobile .ch-theme-primary-menu-icon{
    flex-basis:19px;
    width:19px;
    height:19px;
  }
}

/* =========================================================
   v0.4.265 — Global Page Header + PMPro Checkout Polish
   Presentation only. PMPro remains authoritative for membership/payment logic.
   ========================================================= */

/* Ordinary page.php titles should read like part of the application instead of
   hanging from the far-left edge of the viewport. Purpose-built CommunityHub,
   Elementor, Login, Messages, and Membership Hub headers are excluded in PHP. */
body.ch-theme-standard-page .ch-theme-page-header{
  box-sizing:border-box!important;
  width:min(100%,960px)!important;
  max-width:960px!important;
  margin:0 auto clamp(18px,2.2vw,26px)!important;
  padding:clamp(8px,1vw,12px) clamp(12px,2vw,22px) clamp(15px,1.8vw,20px)!important;
  border-bottom:1px solid color-mix(in srgb,var(--ch-theme-border,#d8e4f2) 82%,transparent)!important;
  text-align:center!important;
}
body.ch-theme-standard-page .ch-theme-page-header h1{
  width:100%!important;
  margin:0!important;
  color:var(--ch-theme-text,#111827)!important;
  font-family:inherit!important;
  font-size:clamp(1.75rem,3vw,2.45rem)!important;
  font-weight:780!important;
  letter-spacing:-.038em!important;
  line-height:1.08!important;
  text-align:center!important;
  text-wrap:balance;
}
body.ch-theme-standard-page .ch-theme-page-header p{
  max-width:680px!important;
  margin:8px auto 0!important;
  color:var(--ch-theme-muted,#667085)!important;
  text-align:center!important;
}

/* Checkout is a focused application surface. Keep the outer WordPress page
   shell quiet and let the PMPro sections become the visual hierarchy. */
body.ch-theme-pmpro-checkout-page .ch-theme-page-shell{
  box-sizing:border-box!important;
  width:min(100%,1040px)!important;
  max-width:1040px!important;
  margin-inline:auto!important;
  padding:0 clamp(12px,2vw,24px) 30px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.ch-theme-pmpro-checkout-page .ch-theme-page-header{
  width:min(100%,900px)!important;
  max-width:900px!important;
  margin:0 auto clamp(16px,2vw,24px)!important;
  padding:clamp(18px,2.4vw,26px) clamp(18px,3vw,30px)!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue,#0080ff) 24%,var(--ch-theme-border,#d8e4f2))!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ch-theme-blue,#0080ff) 7%,var(--ch-theme-surface,#fff)),var(--ch-theme-surface,#fff))!important;
  box-shadow:0 12px 34px rgba(15,23,42,.07)!important;
  text-align:center!important;
}
body.ch-theme-pmpro-checkout-page .ch-theme-page-header h1{
  color:var(--ch-theme-text,#111827)!important;
  font-size:clamp(1.85rem,3.4vw,2.7rem)!important;
  font-weight:800!important;
  letter-spacing:-.042em!important;
  line-height:1.05!important;
  text-align:center!important;
}
body.ch-theme-pmpro-checkout-page .ch-theme-page-content{
  width:100%!important;
  max-width:100%!important;
}

/* PMPro v3 checkout structure. These selectors deliberately follow provider
   classes/IDs so payment and validation behavior remain plugin-owned. */
body.ch-theme-pmpro-checkout-page .pmpro{
  box-sizing:border-box!important;
  width:min(100%,900px)!important;
  max-width:900px!important;
  margin:0 auto!important;
  color:var(--ch-theme-text,#111827)!important;
  font-family:inherit!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_form{
  display:grid!important;
  gap:16px!important;
  width:100%!important;
  margin:0!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_form > p{
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid var(--ch-theme-border,#d8e4f2)!important;
  border-radius:12px!important;
  background:var(--ch-theme-surface-soft,#f8fbff)!important;
  color:var(--ch-theme-text,#111827)!important;
  line-height:1.5!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_fieldset{
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}
body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields){
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  overflow:hidden!important;
  border:1px solid var(--ch-theme-border,#d8e4f2)!important;
  border-radius:18px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#111827)!important;
  box-shadow:0 10px 28px rgba(15,23,42,.07)!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_pricing_fields{
  border-color:color-mix(in srgb,var(--ch-theme-blue,#0080ff) 30%,var(--ch-theme-border,#d8e4f2))!important;
  box-shadow:0 12px 34px color-mix(in srgb,var(--ch-theme-blue,#0080ff) 8%,rgba(15,23,42,.06))!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_card_title{
  margin:0!important;
  padding:18px 20px 0!important;
  color:var(--ch-theme-text,#111827)!important;
  font-family:inherit!important;
  font-size:clamp(1.05rem,1.5vw,1.28rem)!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
  line-height:1.25!important;
  text-align:left!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_card_content{
  padding:12px 20px 20px!important;
  color:var(--ch-theme-text,#111827)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_card_actions{
  margin:0!important;
  padding:11px 20px!important;
  border-top:1px solid var(--ch-theme-border,#d8e4f2)!important;
  background:var(--ch-theme-surface-soft,#f8fbff)!important;
  color:var(--ch-theme-text,#111827)!important;
  text-align:center!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(h1,h2,h3,h4,h5,h6,strong,legend,.pmpro_font-large,.pmpro_level_name_text){
  color:var(--ch-theme-text,#111827)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(p,label,.pmpro_form_label,.pmpro_card_actions,td,th){
  color:var(--ch-theme-text,#111827)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(small,.pmpro_form_hint,.pmpro_form_field-description,.pmpro_checkout-field-description){
  color:var(--ch-theme-muted,#667085)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro a{
  color:var(--ch-theme-blue,#0080ff)!important;
  font-weight:700!important;
  text-underline-offset:2px!important;
}
body.ch-theme-pmpro-checkout-page .pmpro a:hover,
body.ch-theme-pmpro-checkout-page .pmpro a:focus-visible{
  color:color-mix(in srgb,var(--ch-theme-blue,#0080ff) 82%,var(--ch-theme-text,#111827))!important;
}

body.ch-theme-pmpro-checkout-page .pmpro_form_fields{
  display:grid!important;
  gap:12px!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_cols-2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_field{
  min-width:0!important;
  margin:0!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_label{
  display:block!important;
  margin:0 0 6px!important;
  font-size:.82rem!important;
  font-weight:760!important;
  line-height:1.25!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],
  select,textarea,.pmpro_form_input
){
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-height:44px!important;
  padding:9px 11px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-border,#d8e4f2) 92%,var(--ch-theme-text,#111827) 8%)!important;
  border-radius:10px!important;
  background:var(--ch-theme-surface-soft,#f8fbff)!important;
  color:var(--ch-theme-text,#111827)!important;
  box-shadow:none!important;
  font:inherit!important;
  line-height:1.25!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(input,textarea)::placeholder{
  color:color-mix(in srgb,var(--ch-theme-muted,#667085) 78%,transparent)!important;
  opacity:1!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],
  select,textarea,.pmpro_form_input
):focus{
  border-color:var(--ch-theme-blue,#0080ff)!important;
  outline:none!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-theme-blue,#0080ff) 13%,transparent)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(input[type="checkbox"],input[type="radio"]){
  width:17px!important;
  min-width:17px!important;
  height:17px!important;
  min-height:17px!important;
  padding:0!important;
  accent-color:var(--ch-theme-blue,#0080ff)!important;
}

/* Logged-in account summary should read as a compact status panel rather than
   an empty white slab. */
body.ch-theme-pmpro-checkout-page #pmpro_account_loggedin{
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue,#0080ff) 16%,var(--ch-theme-border,#d8e4f2))!important;
  border-radius:12px!important;
  background:color-mix(in srgb,var(--ch-theme-blue,#0080ff) 5%,var(--ch-theme-surface-soft,#f8fbff))!important;
  color:var(--ch-theme-text,#111827)!important;
  line-height:1.5!important;
}

/* Provider buttons inherit the compact CommunityHub control language instead
   of giant pills/blobs. Plain/password utilities remain secondary. */
body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn,button,input[type="button"],input[type="submit"]){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:auto!important;
  min-width:0!important;
  min-height:34px!important;
  margin:0!important;
  padding:6px 10px!important;
  border:1px solid var(--ch-theme-blue,#0080ff)!important;
  border-radius:8px!important;
  background:var(--ch-theme-blue,#0080ff)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-family:inherit!important;
  font-size:.8rem!important;
  font-weight:760!important;
  line-height:1.1!important;
  text-align:center!important;
  text-decoration:none!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn,button,input[type="button"],input[type="submit"]):hover,
body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn,button,input[type="button"],input[type="submit"]):focus-visible{
  filter:brightness(.97)!important;
  outline:none!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ch-theme-blue,#0080ff) 12%,transparent)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn-plain,.pmpro_btn-password-toggle){
  min-height:34px!important;
  padding:6px 9px!important;
  border-color:var(--ch-theme-border,#d8e4f2)!important;
  background:var(--ch-theme-surface-soft,#f8fbff)!important;
  color:var(--ch-theme-muted,#667085)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro .pmpro_btn-password-toggle svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  stroke:currentColor!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_submit{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  margin:0!important;
  padding:4px 0 0!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_btn-submit{
  min-height:38px!important;
  padding:7px 14px!important;
  border-radius:8px!important;
  font-size:.84rem!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_processing_message{
  color:var(--ch-theme-muted,#667085)!important;
  font-size:.82rem!important;
  font-weight:650!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_message{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid var(--ch-theme-border,#d8e4f2)!important;
  border-radius:12px!important;
  background:var(--ch-theme-surface,#fff)!important;
  color:var(--ch-theme-text,#111827)!important;
}

/* Dark-mode parity: explicitly defeat provider white-card/light-text mixes. */
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .ch-theme-page-header,
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .ch-theme-page-header{
  border-color:color-mix(in srgb,var(--ch-theme-blue,#60a5fa) 34%,#334155)!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ch-theme-blue,#60a5fa) 9%,#121c2b),#121c2b)!important;
  box-shadow:0 16px 40px rgba(0,0,0,.26)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields,.pmpro_message),
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields,.pmpro_message){
  border-color:#2b3d55!important;
  background:#121c2b!important;
  color:#f5f7fb!important;
  box-shadow:0 14px 34px rgba(0,0,0,.24)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro_card_actions,
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro_card_actions,
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page #pmpro_account_loggedin,
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page #pmpro_account_loggedin{
  border-color:#2b3d55!important;
  background:#172235!important;
  color:#f5f7fb!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],select,textarea,.pmpro_form_input
),
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],select,textarea,.pmpro_form_input
){
  border-color:#33475f!important;
  background:#0d1725!important;
  color:#f5f7fb!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn-plain,.pmpro_btn-password-toggle),
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn-plain,.pmpro_btn-password-toggle){
  border-color:#33475f!important;
  background:#172235!important;
  color:#c2d0e2!important;
}

/* Tablet keeps the premium centered shell but gives fields more room. */
@media (min-width:783px) and (max-width:1100px){
  body.ch-theme-pmpro-checkout-page .ch-theme-page-shell{width:min(100%,920px)!important;padding-inline:18px!important}
  body.ch-theme-pmpro-checkout-page .pmpro{width:min(100%,820px)!important}
  body.ch-theme-pmpro-checkout-page .ch-theme-page-header{width:min(100%,820px)!important}
}

/* Mobile becomes a true single-column checkout with touch-size controls. */
@media(max-width:782px){
  body.ch-theme-standard-page .ch-theme-page-header{
    margin-bottom:14px!important;
    padding:6px 8px 14px!important;
  }
  body.ch-theme-standard-page .ch-theme-page-header h1{
    font-size:clamp(1.55rem,7vw,1.95rem)!important;
  }
  body.ch-theme-pmpro-checkout-page .ch-theme-page-shell{
    width:100%!important;
    max-width:100%!important;
    padding:0 10px 24px!important;
  }
  body.ch-theme-pmpro-checkout-page .ch-theme-page-header{
    width:100%!important;
    margin-bottom:12px!important;
    padding:16px 14px!important;
    border-radius:16px!important;
  }
  body.ch-theme-pmpro-checkout-page .ch-theme-page-header h1{
    font-size:clamp(1.65rem,8vw,2rem)!important;
  }
  body.ch-theme-pmpro-checkout-page #pmpro_form{gap:12px!important}
  body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields){border-radius:15px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_card_title{padding:15px 14px 0!important;font-size:1.04rem!important}
  body.ch-theme-pmpro-checkout-page .pmpro_card_content{padding:10px 14px 15px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_card_actions{padding:10px 14px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_cols-2{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
  body.ch-theme-pmpro-checkout-page .pmpro :is(input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],select,textarea,.pmpro_form_input){
    min-height:46px!important;
    font-size:16px!important;
  }
  body.ch-theme-pmpro-checkout-page .pmpro_form_submit{justify-content:stretch!important}
  body.ch-theme-pmpro-checkout-page #pmpro_submit_span{display:block!important;width:100%!important}
  body.ch-theme-pmpro-checkout-page #pmpro_btn-submit{width:100%!important;min-height:46px!important}
}

@media(prefers-reduced-motion:reduce){
  body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn,button,input[type="button"],input[type="submit"],input,select,textarea){transition:none!important}
}


/* =========================================================
   v0.4.266 — PMPro Checkout Premium Second-Pass Polish
   Presentation only. Removes residual provider width constraints and improves
   hierarchy/geometry without touching membership, gateway, validation or TOS logic.
   ========================================================= */

/* PMPro ships conservative card/form widths. The CommunityHub checkout owns the
   page workspace, so release those provider caps while preserving its markup. */
body.ch-theme-pmpro-checkout-page .pmpro,
body.ch-theme-pmpro-checkout-page #pmpro_form,
body.ch-theme-pmpro-checkout-page #pmpro_form > *,
body.ch-theme-pmpro-checkout-page .pmpro_form_fieldset,
body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields),
body.ch-theme-pmpro-checkout-page .pmpro_card_content,
body.ch-theme-pmpro-checkout-page .pmpro_form_fields,
body.ch-theme-pmpro-checkout-page .pmpro_cols-2{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
}
body.ch-theme-pmpro-checkout-page .pmpro{
  width:min(100%,920px)!important;
  max-width:920px!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_form{
  gap:18px!important;
}

/* Cards feel like one premium checkout system instead of isolated plugin slabs. */
body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields){
  position:relative!important;
  border-radius:17px!important;
  border-color:color-mix(in srgb,var(--ch-theme-border,#d8e4f2) 84%,var(--ch-theme-blue,#0080ff) 16%)!important;
  background:linear-gradient(180deg,var(--ch-theme-surface,#fff),color-mix(in srgb,var(--ch-theme-surface-soft,#f8fbff) 58%,var(--ch-theme-surface,#fff)))!important;
  box-shadow:0 12px 30px rgba(15,23,42,.065)!important;
}
body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields)::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  border-radius:17px 0 0 17px;
  background:linear-gradient(180deg,var(--ch-theme-blue,#0080ff),color-mix(in srgb,var(--ch-theme-blue,#0080ff) 48%,transparent));
  opacity:.8;
  pointer-events:none;
}
body.ch-theme-pmpro-checkout-page .pmpro_card_title{
  position:relative!important;
  padding:20px 24px 10px!important;
  font-size:clamp(1.08rem,1.45vw,1.28rem)!important;
  font-weight:820!important;
  letter-spacing:-.025em!important;
  text-align:center!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_card_title::after{
  content:"";
  display:block;
  width:38px;
  height:2px;
  margin:9px auto 0;
  border-radius:999px;
  background:color-mix(in srgb,var(--ch-theme-blue,#0080ff) 76%,transparent);
}
body.ch-theme-pmpro-checkout-page .pmpro_card_content{
  padding:12px 24px 24px!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_card_actions{
  padding:13px 24px!important;
}

/* Pricing summary: keep the important membership choice readable at a glance. */
body.ch-theme-pmpro-checkout-page #pmpro_pricing_fields .pmpro_card_content{
  text-align:center!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_pricing_fields .pmpro_level_name_text{
  margin:0 auto 8px!important;
  font-size:1rem!important;
  line-height:1.55!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_pricing_fields .pmpro_level_name_text strong{
  color:var(--ch-theme-blue,#0080ff)!important;
  font-weight:850!important;
}

/* Field geometry: the old screen looked sparse because PMPro's fields kept their
   own narrow widths even inside a larger card. Make each grid cell own its column. */
body.ch-theme-pmpro-checkout-page .pmpro_form_fields{
  gap:15px!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_cols-2{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:20px!important;
  row-gap:15px!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_cols-2 > *,
body.ch-theme-pmpro-checkout-page .pmpro_form_field{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_label{
  margin:0 0 7px!important;
  font-size:.86rem!important;
  font-weight:760!important;
  letter-spacing:-.006em!important;
  line-height:1.25!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],
  select,textarea,.pmpro_form_input
){
  min-height:47px!important;
  padding:10px 13px!important;
  border-radius:11px!important;
  font-size:.94rem!important;
}

/* Inline provider controls should sit as a cohesive row, not tiny islands. */
body.ch-theme-pmpro-checkout-page .pmpro_form_fields-inline{
  display:flex!important;
  align-items:stretch!important;
  gap:8px!important;
  width:100%!important;
  max-width:none!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_fields-inline .pmpro_form_input{
  flex:1 1 auto!important;
  min-width:0!important;
}
body.ch-theme-pmpro-checkout-page .pmpro_form_fields-inline :is(.pmpro_btn,button,input[type="button"]){
  flex:0 0 auto!important;
  min-height:36px!important;
  padding-inline:11px!important;
}

/* Logged-in account summary is a compact status strip with stronger hierarchy. */
body.ch-theme-pmpro-checkout-page #pmpro_account_loggedin{
  padding:14px 16px!important;
  border-radius:11px!important;
  text-align:center!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_account_loggedin strong{
  font-weight:850!important;
}

/* Make common checkbox/TOS fields read as a deliberate confirmation step. */
body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_form_field-checkbox,.pmpro_checkout-field-checkbox){
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:13px 15px!important;
  border:1px solid var(--ch-theme-border,#d8e4f2)!important;
  border-radius:12px!important;
  background:var(--ch-theme-surface-soft,#f8fbff)!important;
}
body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_form_field-checkbox,.pmpro_checkout-field-checkbox) label,
body.ch-theme-pmpro-checkout-page #pmpro_form label:has(input[type="checkbox"]){
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:9px!important;
  width:100%!important;
  margin:0!important;
  color:var(--ch-theme-text,#111827)!important;
  font-size:.86rem!important;
  font-weight:680!important;
  line-height:1.4!important;
  text-align:left!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_form label:has(input[type="checkbox"]) input[type="checkbox"]{
  margin-top:1px!important;
  flex:0 0 18px!important;
}

/* Final action now feels connected to the checkout instead of floating below it. */
body.ch-theme-pmpro-checkout-page .pmpro_form_submit{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-height:72px!important;
  margin:0!important;
  padding:13px 16px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue,#0080ff) 20%,var(--ch-theme-border,#d8e4f2))!important;
  border-radius:14px!important;
  background:color-mix(in srgb,var(--ch-theme-blue,#0080ff) 4%,var(--ch-theme-surface,#fff))!important;
  justify-content:center!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_submit_span{
  display:inline-flex!important;
}
body.ch-theme-pmpro-checkout-page #pmpro_btn-submit{
  min-height:39px!important;
  padding:8px 16px!important;
  border-radius:8px!important;
  box-shadow:0 3px 10px color-mix(in srgb,var(--ch-theme-blue,#0080ff) 14%,transparent)!important;
  font-size:.84rem!important;
  letter-spacing:-.006em!important;
}

/* Dark-mode second pass: subtle layer separation instead of flat navy-on-navy. */
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields),
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields){
  border-color:#2d425d!important;
  background:linear-gradient(180deg,#142033,#111b2b)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.018)!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro_card_actions,
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro_card_actions{
  background:#101a29!important;
  border-color:#2d425d!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_form_field-checkbox,.pmpro_checkout-field-checkbox),
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_form_field-checkbox,.pmpro_checkout-field-checkbox),
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro_form_submit,
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro_form_submit{
  border-color:#2d425d!important;
  background:#121e30!important;
  color:#f5f7fb!important;
}
html[data-ch-theme-mode="dark"] body.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],select,textarea,.pmpro_form_input
),
body.ch-theme-mode-dark.ch-theme-pmpro-checkout-page .pmpro :is(
  input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],select,textarea,.pmpro_form_input
){
  border-color:#38506c!important;
  background:#0b1624!important;
  color:#f7f9fc!important;
}

/* Tablet: retain two columns where there is enough room, but relax the overall
   desktop width so the checkout never crowds navigation/rails. */
@media (min-width:783px) and (max-width:1100px){
  body.ch-theme-pmpro-checkout-page .pmpro{width:min(100%,790px)!important;max-width:790px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_cols-2{column-gap:16px!important}
}

/* Phone: true single column with no provider max-width leakage. */
@media(max-width:782px){
  body.ch-theme-pmpro-checkout-page .pmpro,
  body.ch-theme-pmpro-checkout-page #pmpro_form,
  body.ch-theme-pmpro-checkout-page #pmpro_form > *,
  body.ch-theme-pmpro-checkout-page .pmpro_form_fieldset,
  body.ch-theme-pmpro-checkout-page :is(.pmpro_card,#pmpro_pricing_fields){
    width:100%!important;
    max-width:none!important;
  }
  body.ch-theme-pmpro-checkout-page .pmpro_card_title{padding:17px 15px 8px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_card_content{padding:10px 15px 17px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_cols-2{grid-template-columns:minmax(0,1fr)!important;gap:11px!important}
  body.ch-theme-pmpro-checkout-page .pmpro_form_fields-inline{align-items:stretch!important}
  body.ch-theme-pmpro-checkout-page .pmpro_form_submit{min-height:0!important;padding:11px!important}
  body.ch-theme-pmpro-checkout-page #pmpro_submit_span{display:block!important;width:100%!important}
  body.ch-theme-pmpro-checkout-page #pmpro_btn-submit{width:100%!important;min-height:42px!important}
}

/* =========================================================
v0.4.267 — Compact Default Button System
Shared presentation foundation for ordinary site actions. Purpose-built controls
(header icon buttons, Community action rows, Forums, Loops, Better Messages,
composer attachment controls, etc.) retain their component-specific rules.
========================================================= */
body.ch-theme :is(.ch-theme-page-content,.ch-theme-entry-content,.ch-theme-widget,.comments-area) :is(button,input[type="submit"],input[type="button"],a.button,.wp-block-button__link):not(.ch-theme-header-icon-button):not(.ch-remove-attachment):not(.ch-forum-menu-button):not(.ch-forum-action-button):not(.ch-action-button):not(.ch-repost-combo-button):not(.ch-bookmark-button){
  vertical-align:middle;
  text-rendering:optimizeLegibility;
}
body.ch-theme :is(button,a.button,.wp-block-button__link) > :is(svg,.dashicons,i){
  flex:0 0 auto;
  margin:0;
  line-height:1;
}
body.ch-theme :is(button,a.button,.wp-block-button__link) > svg{
  display:block;
}
/* Keep touch targets comfortable on phones while retaining the compact visual
   geometry requested for desktop/tablet. */
@media(max-width:782px){
  body.ch-theme .ch-theme-page-content :is(button,input[type="submit"],input[type="button"],a.button,.wp-block-button__link):not(.ch-theme-header-icon-button):not(.ch-remove-attachment):not(.ch-action-button),
  body.ch-theme .ch-theme-entry-content :is(button,input[type="submit"],input[type="button"],a.button,.wp-block-button__link):not(.ch-theme-header-icon-button):not(.ch-remove-attachment):not(.ch-action-button){
    min-height:40px;
    padding:8px 11px;
  }
  body.ch-theme-pmpro-checkout-page .pmpro :is(.pmpro_btn,button,input[type="button"],input[type="submit"]){
    min-height:40px!important;
    padding:8px 11px!important;
    border-radius:9px!important;
  }
  body.ch-theme-pmpro-checkout-page #pmpro_btn-submit{
    min-height:42px!important;
    padding:9px 15px!important;
  }
}


/* v0.4.268 — generic per-user header identity logo seam. */
.ch-theme-brand .ch-theme-user-identity-logo {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 22%;
}


/* =========================================================
   v0.4.269 — Primary Menu Icon Vertical Alignment Recovery
   - Keeps the approved per-item icon system and automatic mappings.
   - Gives built-in SVGs a safe rendering box so strokes cannot appear clipped.
   - Normalizes icon alignment across desktop, tablet, mobile, and dropdowns.
   ========================================================= */
body.ch-theme .ch-theme-primary-menu-icon{
  box-sizing:border-box!important;
  overflow:visible!important;
  vertical-align:middle!important;
  flex:0 0 18px!important;
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  line-height:0!important;
}
body.ch-theme .ch-theme-primary-menu-icon svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  max-width:none!important;
  max-height:none!important;
  overflow:visible!important;
  flex:none!important;
  transform:none!important;
}
body.ch-theme .ch-theme-primary-menu-icon img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
body.ch-theme .ch-theme-primary-menu a{
  overflow:visible!important;
}
@media(max-width:782px){
  body.ch-theme .ch-theme-primary-menu--mobile .ch-theme-primary-menu-icon{
    flex-basis:20px!important;
    width:20px!important;
    min-width:20px!important;
    height:20px!important;
    min-height:20px!important;
  }
  body.ch-theme .ch-theme-primary-menu--mobile .ch-theme-primary-menu-icon svg{
    width:20px!important;
    height:20px!important;
  }
}

/* =========================================================
   v0.4.271 — WordPress Dashicon support for Primary Menu
   ========================================================= */
body.ch-theme .ch-theme-primary-menu-icon--dashicon .dashicons{
	display:block!important;
	width:18px!important;
	height:18px!important;
	font-size:18px!important;
	line-height:18px!important;
	text-align:center!important;
	color:currentColor!important;
	font-family:dashicons!important;
	font-weight:400!important;
	font-style:normal!important;
	text-decoration:inherit!important;
	vertical-align:top!important;
}
@media(max-width:782px){
	body.ch-theme .ch-theme-primary-menu--mobile .ch-theme-primary-menu-icon--dashicon .dashicons{
		width:20px!important;
		height:20px!important;
		font-size:20px!important;
		line-height:20px!important;
	}
}

/* ==============================================================
   v0.4.272 — Primary Menu Site Brand Badge
   ============================================================== */
.ch-theme-primary-menu-icon--brand img{display:block;width:1em;height:1em;object-fit:contain;border-radius:50%;transform:none}

/* ==============================================================
   v0.4.274 — Font Awesome Free SVG Menu Icon Library
   - Local same-origin SVG sprite; no icon font or external CDN.
   - currentColor keeps selected icons aligned with every header state/skin.
   ============================================================== */
body.ch-theme .ch-theme-primary-menu-icon--fontawesome .ch-theme-fa-icon,
body.ch-theme .ch-theme-primary-menu-icon .ch-theme-fa-icon{
  display:block!important;
  width:100%!important;
  height:100%!important;
  fill:currentColor!important;
  color:inherit!important;
  overflow:visible!important;
}

/* =========================================================
   v0.4.275 — compact premium rail/action button polish
   ========================================================= */
body.ch-theme .ch-theme-sidebar :is(.widget,.ch-theme-widget) :is(button,input[type="submit"],a.button,.button,.wp-block-button__link,.wp-block-search__button){
  min-height:38px!important;
  padding:0 14px!important;
  border:1px solid color-mix(in srgb,var(--ch-theme-blue,#168cff) 72%,#ffffff 28%)!important;
  border-radius:10px!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--ch-theme-blue,#168cff) 90%,#ffffff 10%),var(--ch-theme-blue,#168cff))!important;
  color:#ffffff!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-decoration:none!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--ch-theme-blue,#168cff) 20%,transparent)!important;
  transition:transform .12s ease,box-shadow .16s ease,filter .16s ease!important;
}
body.ch-theme .ch-theme-sidebar :is(.widget,.ch-theme-widget) :is(button,input[type="submit"],a.button,.button,.wp-block-button__link,.wp-block-search__button):hover{
  transform:translateY(-1px)!important;
  filter:saturate(1.04)!important;
  box-shadow:0 7px 18px color-mix(in srgb,var(--ch-theme-blue,#168cff) 27%,transparent)!important;
}
body.ch-theme .ch-theme-sidebar :is(.widget,.ch-theme-widget) :is(button,input[type="submit"],a.button,.button,.wp-block-button__link,.wp-block-search__button):active{
  transform:translateY(0) scale(.985)!important;
}
body.ch-theme .ch-theme-sidebar :is(.widget,.ch-theme-widget) :is(button,input[type="submit"],a.button,.button,.wp-block-button__link,.wp-block-search__button):focus-visible{
  outline:3px solid color-mix(in srgb,var(--ch-theme-blue,#168cff) 28%,transparent)!important;
  outline-offset:2px!important;
}
/* Preserve compact/icon-only controls instead of stretching them into CTAs. */
body.ch-theme .ch-theme-sidebar :is(.widget,.ch-theme-widget) :is(button[aria-label],.is-style-circle){
  min-width:38px!important;
  width:38px!important;
  padding:0!important;
  border-radius:10px!important;
}
/* Prize Drop / game CTA should belong to the same visual family in rail mode. */
body.ch-theme .ch-theme-sidebar .ch-game-play-button,
body.ch-theme .ch-theme-sidebar .ch-game-widget-expand{
  min-height:38px!important;
  border-radius:10px!important;
  font-size:13px!important;
  font-weight:850!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--ch-theme-blue,#168cff) 20%,transparent)!important;
}
@media(max-width:782px){
  body.ch-theme .ch-theme-sidebar :is(.widget,.ch-theme-widget) :is(button,input[type="submit"],a.button,.button,.wp-block-button__link,.wp-block-search__button){
    min-height:38px!important;
    padding-inline:13px!important;
    border-radius:10px!important;
    font-size:13px!important;
  }
}

/* =========================================================
   v0.4.276 — Hooligan Champion Navigation Skin presentation
   Navigation ownership remains isolated to the nav slot.
   ========================================================= */
body.ch-theme.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-community-bar{position:relative;isolation:isolate;background:linear-gradient(145deg,#090b10,#241b08 46%,#0b0d12)!important;border-color:rgba(215,173,61,.62)!important;box-shadow:0 -1px 0 rgba(255,239,170,.10),0 0 0 1px rgba(215,173,61,.16),0 0 28px rgba(184,128,17,.18)!important;overflow:visible}
body.ch-theme.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-community-bar::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,242,177,.12) 48%,transparent 62%);background-size:250% 100%;animation:chThemeChampionSweep 5.2s ease-in-out infinite;z-index:0}
body.ch-theme.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-community-bar .ch-theme-nav-pill{position:relative;z-index:1;color:#f5e8bd!important;text-shadow:0 1px 8px rgba(0,0,0,.48)}
body.ch-theme.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-community-bar .ch-theme-nav-pill:is(:hover,:focus-visible,.is-active){background:linear-gradient(145deg,rgba(242,201,91,.22),rgba(132,85,8,.28))!important;color:#fff2b0!important;box-shadow:inset 0 0 0 1px rgba(244,201,93,.32),0 0 12px rgba(244,201,93,.16)!important}
body.ch-theme.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-community-center-action{background:linear-gradient(145deg,#f0ca5b,#8b5908)!important;border-color:#ffe59a!important;color:#1a1002!important;box-shadow:0 0 18px rgba(244,201,93,.35)!important}
body.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-back-to-top{background:linear-gradient(145deg,#1d1608,#8d5a08)!important;border-color:#e0b746!important;color:#ffe9a0!important;box-shadow:0 7px 20px rgba(95,61,6,.28)!important}
body.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-back-to-top:is(:hover,:focus-visible,:active){background:linear-gradient(145deg,#e8bf50,#8b5908)!important;color:#170f02!important}
@keyframes chThemeChampionSweep{0%,62%,100%{background-position:180% 0}82%{background-position:-80% 0}}
@media(prefers-reduced-motion:reduce){body.ch-theme.ch-theme-nav-cosmetic-hooligan-champion-nav .ch-theme-community-bar::before{animation:none!important}}


/* =========================================================
   v0.4.277 — Light-mode contrast calibration + semantic bridge
   ========================================================= */
html[data-ch-theme-mode="light"] body.ch-theme,
html:not([data-ch-theme-mode]) body.ch-theme:not(.ch-theme-mode-dark){
  --ch-bg:var(--ch-theme-bg,#eef3f8);
  --ch-surface:var(--ch-theme-surface,#fff);
  --ch-surface-raised:var(--ch-theme-surface,#fff);
  --ch-surface-soft:var(--ch-theme-surface-soft,#eef3f8);
  --ch-text:var(--ch-theme-text,#101828);
  --ch-text-muted:var(--ch-theme-muted,#526174);
  --ch-border:var(--ch-theme-border,#c4cfdd);
  --ch-input-bg:#fff;
}
html[data-ch-theme-mode="light"] body.ch-theme :is(
  .ch-theme-page,.ch-theme-single,.ch-theme-widget,.ch-activity-card,.ch-profile-header-card,
  .ch-profile-settings-card,.ch-profile-settings-nav,.ch-member-card,.ch-group-card,.ch-forum-card,
  .ch-forum-post-card,.ch-notification-item,.ch-composer,.ch-community-feed-header,.ch-page-header
){
  border-color:var(--ch-theme-border,#c4cfdd)!important;
}
html[data-ch-theme-mode="light"] body.ch-theme :is(
  .ch-theme-widget,.ch-activity-card,.ch-profile-header-card,.ch-profile-settings-card,
  .ch-member-card,.ch-group-card,.ch-forum-card,.ch-forum-post-card,.ch-notification-item,.ch-composer
){
  box-shadow:var(--ch-theme-soft-shadow,0 10px 28px rgba(15,23,42,.10));
}
html[data-ch-theme-mode="light"] body.ch-theme :is(input,select,textarea){
  border-color:var(--ch-theme-border,#c4cfdd);
}

/* Profile Settings keeps the normal Profile shell/skin ownership while
   restoring the right widget rail whenever the configured right rail has widgets. */
.ch-theme-community-shell--profile.ch-theme-layout--sidebar-both{
  grid-template-columns:minmax(220px,280px) minmax(0,min(100%,900px)) minmax(220px,300px)!important;
  justify-content:center!important;
}


/* v0.4.286 — Light-mode material upgrade: subtle marble environment + ceramic cards */
html[data-ch-theme-mode="light"],
body:not(.ch-theme-mode-dark){
	--ch-theme-bg:#eef2f6;
	--ch-theme-surface:#fcfdff;
	--ch-theme-surface-soft:#f4f7fb;
	--ch-theme-text:#0f172a;
	--ch-theme-muted:#516174;
	--ch-theme-border:#b7c5d6;
	--ch-theme-shadow:0 18px 44px rgba(15,23,42,.10);
	--ch-theme-soft-shadow:0 10px 24px rgba(15,23,42,.07);
}
html[data-ch-theme-mode="light"] body,
body:not(.ch-theme-mode-dark){
	background:
		radial-gradient(circle at 18% 12%, rgba(255,255,255,.82), transparent 23rem),
		radial-gradient(circle at 82% 8%, rgba(210,225,240,.34), transparent 26rem),
		linear-gradient(115deg, rgba(170,182,196,.11) 0%, rgba(255,255,255,0) 17%, rgba(182,195,209,.09) 33%, rgba(255,255,255,0) 48%, rgba(168,180,194,.08) 63%, rgba(255,255,255,0) 79%, rgba(182,195,209,.07) 100%),
		linear-gradient(180deg, #f6f8fb 0%, #edf2f7 100%) !important;
	background-attachment: fixed !important;
}
html[data-ch-theme-mode="light"] .ch-theme-header,
body:not(.ch-theme-mode-dark) .ch-theme-header{
	background:color-mix(in srgb, #ffffff 91%, rgba(233,239,246,.96)) !important;
	backdrop-filter:blur(18px) saturate(1.08);
	border-color:rgba(170,183,197,.72)!important;
	box-shadow:0 14px 34px rgba(15,23,42,.08)!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget,
html[data-ch-theme-mode="light"] .ch-theme-post-card,
html[data-ch-theme-mode="light"] .ch-theme-page-shell,
html[data-ch-theme-mode="light"] .ch-theme-single-header,
html[data-ch-theme-mode="light"] .ch-theme-mobile-widget-bar,
html[data-ch-theme-mode="light"] .ch-theme-comments,
html[data-ch-theme-mode="light"] .widget,
html[data-ch-theme-mode="light"] .ch-account-danger-zone,
html[data-ch-theme-mode="light"] .ch-account-lifecycle-action-card,
html[data-ch-theme-mode="light"] .ch-account-lifecycle-state,
html[data-ch-theme-mode="light"] .ch-account-deletion-admin,
html[data-ch-theme-mode="light"] .ch-hooligan-hof,
html[data-ch-theme-mode="light"] .ch-hooligan-hof-card,
html[data-ch-theme-mode="light"] .ch-hof-spotlight-panel,
body:not(.ch-theme-mode-dark) .ch-theme-widget,
body:not(.ch-theme-mode-dark) .ch-theme-post-card,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell,
body:not(.ch-theme-mode-dark) .ch-theme-single-header,
body:not(.ch-theme-mode-dark) .ch-theme-mobile-widget-bar,
body:not(.ch-theme-mode-dark) .ch-theme-comments,
body:not(.ch-theme-mode-dark) .widget,
body:not(.ch-theme-mode-dark) .ch-account-danger-zone,
body:not(.ch-theme-mode-dark) .ch-account-lifecycle-action-card,
body:not(.ch-theme-mode-dark) .ch-account-lifecycle-state,
body:not(.ch-theme-mode-dark) .ch-account-deletion-admin,
body:not(.ch-theme-mode-dark) .ch-hooligan-hof,
body:not(.ch-theme-mode-dark) .ch-hooligan-hof-card,
body:not(.ch-theme-mode-dark) .ch-hof-spotlight-panel{
	background:
		linear-gradient(180deg, rgba(255,255,255,.97), rgba(248,251,255,.95)) padding-box,
		linear-gradient(180deg, rgba(255,255,255,.92), rgba(222,231,240,.98)) border-box !important;
	border:1px solid transparent !important;
	box-shadow:0 18px 44px rgba(15,23,42,.10), inset 0 1px 0 rgba(255,255,255,.78) !important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget,
html[data-ch-theme-mode="light"] .widget,
body:not(.ch-theme-mode-dark) .ch-theme-widget,
body:not(.ch-theme-mode-dark) .widget{border-radius:22px!important}
html[data-ch-theme-mode="light"] .ch-theme-post-card,
html[data-ch-theme-mode="light"] .ch-theme-page-shell,
html[data-ch-theme-mode="light"] .ch-theme-single-header,
html[data-ch-theme-mode="light"] .ch-theme-mobile-widget-bar,
body:not(.ch-theme-mode-dark) .ch-theme-post-card,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell,
body:not(.ch-theme-mode-dark) .ch-theme-single-header,
body:not(.ch-theme-mode-dark) .ch-theme-mobile-widget-bar{border-radius:24px!important}
html[data-ch-theme-mode="light"] .ch-theme-widget-title,
html[data-ch-theme-mode="light"] .ch-theme-post-card h2 a,
html[data-ch-theme-mode="light"] .ch-theme-single-header h1,
html[data-ch-theme-mode="light"] .widget-title,
body:not(.ch-theme-mode-dark) .ch-theme-widget-title,
body:not(.ch-theme-mode-dark) .ch-theme-post-card h2 a,
body:not(.ch-theme-mode-dark) .ch-theme-single-header h1,
body:not(.ch-theme-mode-dark) .widget-title{
	color:#0f172a!important;
	text-shadow:0 1px 0 rgba(255,255,255,.7);
}
html[data-ch-theme-mode="light"] .ch-theme-post-meta,
html[data-ch-theme-mode="light"] .ch-theme-footer-inner,
html[data-ch-theme-mode="light"] .ch-theme-page-content p,
html[data-ch-theme-mode="light"] .ch-theme-widget,
html[data-ch-theme-mode="light"] .widget,
body:not(.ch-theme-mode-dark) .ch-theme-post-meta,
body:not(.ch-theme-mode-dark) .ch-theme-footer-inner,
body:not(.ch-theme-mode-dark) .ch-theme-page-content p,
body:not(.ch-theme-mode-dark) .ch-theme-widget,
body:not(.ch-theme-mode-dark) .widget{
	color:#58677a!important;
}
html[data-ch-theme-mode="light"] .ch-theme-sidebar .widget>*,
html[data-ch-theme-mode="light"] .ch-theme-post-card>*,
html[data-ch-theme-mode="light"] .ch-theme-page-shell>*,
body:not(.ch-theme-mode-dark) .ch-theme-sidebar .widget>*,
body:not(.ch-theme-mode-dark) .ch-theme-post-card>*,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell>*{position:relative;z-index:1}
html[data-ch-theme-mode="light"] .ch-theme-widget::before,
html[data-ch-theme-mode="light"] .ch-theme-post-card::before,
html[data-ch-theme-mode="light"] .ch-theme-page-shell::before,
html[data-ch-theme-mode="light"] .ch-theme-single-header::before,
body:not(.ch-theme-mode-dark) .ch-theme-widget::before,
body:not(.ch-theme-mode-dark) .ch-theme-post-card::before,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell::before,
body:not(.ch-theme-mode-dark) .ch-theme-single-header::before{
	content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
	background:linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,0) 38%);
	opacity:.72;z-index:0;
}
html[data-ch-theme-mode="light"] input,
html[data-ch-theme-mode="light"] select,
html[data-ch-theme-mode="light"] textarea,
html[data-ch-theme-mode="light"] .select2-selection,
body:not(.ch-theme-mode-dark) input,
body:not(.ch-theme-mode-dark) select,
body:not(.ch-theme-mode-dark) textarea,
body:not(.ch-theme-mode-dark) .select2-selection{
	background:#fff!important;
	border:1px solid #b7c5d6!important;
	color:#0f172a!important;
	box-shadow:0 4px 14px rgba(15,23,42,.04), inset 0 1px 0 rgba(255,255,255,.88)!important;
}
html[data-ch-theme-mode="light"] input:focus,
html[data-ch-theme-mode="light"] select:focus,
html[data-ch-theme-mode="light"] textarea:focus,
body:not(.ch-theme-mode-dark) input:focus,
body:not(.ch-theme-mode-dark) select:focus,
body:not(.ch-theme-mode-dark) textarea:focus{
	border-color:color-mix(in srgb, var(--ch-theme-blue) 44%, #9fb2c7)!important;
	box-shadow:0 0 0 3px rgba(0,128,255,.12), 0 10px 22px rgba(15,23,42,.06)!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget-rail .widget,
body:not(.ch-theme-mode-dark) .ch-theme-widget-rail .widget{
	backdrop-filter:blur(6px);
}
html[data-ch-theme-mode="light"] .ch-hooligan-hof,
html[data-ch-theme-mode="light"] .ch-hof-spotlight-panel,
body:not(.ch-theme-mode-dark) .ch-hooligan-hof,
body:not(.ch-theme-mode-dark) .ch-hof-spotlight-panel{
	background:
		radial-gradient(circle at top right, rgba(246,217,122,.16), transparent 24rem),
		linear-gradient(180deg, rgba(255,255,255,.97), rgba(248,251,255,.95)) padding-box,
		linear-gradient(180deg, rgba(255,255,255,.92), rgba(222,231,240,.98)) border-box !important;
}


/* v0.4.287 — Light-mode ceramic rail washout recovery */
html[data-ch-theme-mode="light"] .ch-theme-widget,
html[data-ch-theme-mode="light"] .widget,
html[data-ch-theme-mode="light"] .ch-theme-post-card,
html[data-ch-theme-mode="light"] .ch-theme-page-shell,
html[data-ch-theme-mode="light"] .ch-theme-single-header,
body:not(.ch-theme-mode-dark) .ch-theme-widget,
body:not(.ch-theme-mode-dark) .widget,
body:not(.ch-theme-mode-dark) .ch-theme-post-card,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell,
body:not(.ch-theme-mode-dark) .ch-theme-single-header{
	position:relative!important;
	isolation:isolate!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget::before,
html[data-ch-theme-mode="light"] .widget::before,
html[data-ch-theme-mode="light"] .ch-theme-post-card::before,
html[data-ch-theme-mode="light"] .ch-theme-page-shell::before,
html[data-ch-theme-mode="light"] .ch-theme-single-header::before,
body:not(.ch-theme-mode-dark) .ch-theme-widget::before,
body:not(.ch-theme-mode-dark) .widget::before,
body:not(.ch-theme-mode-dark) .ch-theme-post-card::before,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell::before,
body:not(.ch-theme-mode-dark) .ch-theme-single-header::before{
	z-index:-1!important;
	opacity:.34!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget>*,
html[data-ch-theme-mode="light"] .widget>*,
html[data-ch-theme-mode="light"] .ch-theme-post-card>*,
html[data-ch-theme-mode="light"] .ch-theme-page-shell>*,
html[data-ch-theme-mode="light"] .ch-theme-single-header>*,
body:not(.ch-theme-mode-dark) .ch-theme-widget>*,
body:not(.ch-theme-mode-dark) .widget>*,
body:not(.ch-theme-mode-dark) .ch-theme-post-card>*,
body:not(.ch-theme-mode-dark) .ch-theme-page-shell>*,
body:not(.ch-theme-mode-dark) .ch-theme-single-header>*{
	position:relative!important;
	z-index:1!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget,
html[data-ch-theme-mode="light"] .widget,
body:not(.ch-theme-mode-dark) .ch-theme-widget,
body:not(.ch-theme-mode-dark) .widget{
	color:#334155!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget a,
html[data-ch-theme-mode="light"] .widget a,
body:not(.ch-theme-mode-dark) .ch-theme-widget a,
body:not(.ch-theme-mode-dark) .widget a{
	opacity:1!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget img,
html[data-ch-theme-mode="light"] .widget img,
body:not(.ch-theme-mode-dark) .ch-theme-widget img,
body:not(.ch-theme-mode-dark) .widget img{
	opacity:1!important;
	filter:none!important;
}
html[data-ch-theme-mode="light"] .ch-theme-widget input,
html[data-ch-theme-mode="light"] .widget input,
html[data-ch-theme-mode="light"] .ch-theme-widget select,
html[data-ch-theme-mode="light"] .widget select,
body:not(.ch-theme-mode-dark) .ch-theme-widget input,
body:not(.ch-theme-mode-dark) .widget input,
body:not(.ch-theme-mode-dark) .ch-theme-widget select,
body:not(.ch-theme-mode-dark) .widget select{
	opacity:1!important;
}


/* =========================================================
   v0.4.288 — Luxury marble light mode + responsive authority.
   Desktop >=1360; compact/tablet 961–1359; mobile/compact <=960.
   ========================================================= */

/* LIGHT MODE — real marble canvas. The image is Theme-owned and intentionally
   subtle enough to sit behind ceramic content without harming readability. */
html[data-ch-theme-mode="light"] body.ch-theme,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
  background-color:#eef1f4!important;
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(236,241,246,.10)),
    url("../images/communityhub-marble-light.webp")!important;
  background-size:auto,cover!important;
  background-position:center top!important;
  background-repeat:no-repeat,repeat-y!important;
  background-attachment:fixed,fixed!important;
}

/* Let the stone actually show between the ceramic surfaces instead of placing
   an opaque page wash over the entire site. */
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-main,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-main{
  background:transparent!important;
}

/* Ceramic surfaces stay clean and premium against the marble canvas. */
html[data-ch-theme-mode="light"] body.ch-theme :is(
  .ch-theme-widget,
  .widget,
  .ch-theme-post-card,
  .ch-theme-page-shell,
  .ch-theme-single-header,
  .ch-theme-content-wrap,
  .ch-community-feed-header,
  .ch-composer,
  .ch-activity-card
),
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) :is(
  .ch-theme-widget,
  .widget,
  .ch-theme-post-card,
  .ch-theme-page-shell,
  .ch-theme-single-header,
  .ch-theme-content-wrap,
  .ch-community-feed-header,
  .ch-composer,
  .ch-activity-card
){
  box-shadow:
    0 16px 38px rgba(36,48,61,.105),
    0 2px 5px rgba(36,48,61,.045),
    inset 0 1px 0 rgba(255,255,255,.92)!important;
}

/* ---------- DESKTOP AUTHORITY ---------- */
@media (min-width:1360px){
  body.ch-theme .ch-theme-menu-toggle,
  body.ch-theme .ch-theme-mobile-menu-toggle{
    display:none!important;
  }
  body.ch-theme .ch-theme-menu-panel{
    display:none!important;
  }
}

/* ---------- TABLET / COMPACT DESKTOP ---------- */
@media (min-width:961px) and (max-width:1359px){
  body.ch-theme .ch-theme-menu-toggle,
  body.ch-theme .ch-theme-mobile-menu-toggle{
    display:none!important;
  }
  body.ch-theme .ch-theme-menu-panel{
    display:none!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell:is(
    .ch-theme-layout--sidebar-both,
    .ch-theme-layout--sidebar-left,
    .ch-theme-layout--sidebar-right
  ){
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "ch-feed ch-feed"
      "ch-left ch-right"!important;
    align-items:start!important;
    justify-content:center!important;
    gap:14px 12px!important;
    width:min(calc(100vw - 32px),940px)!important;
    max-width:940px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-community-content-wrap{
    grid-area:ch-feed!important;
    grid-column:1 / -1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:820px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--left{
    grid-area:ch-left!important;
    grid-column:1!important;
    grid-row:2!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--right{
    grid-area:ch-right!important;
    grid-column:2!important;
    grid-row:2!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > :is(.ch-theme-sidebar--left,.ch-theme-sidebar--right){
    position:static!important;
    top:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:464px!important;
    margin:0!important;
    padding:0!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-left > .ch-theme-sidebar--left,
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell.ch-theme-layout--sidebar-right > .ch-theme-sidebar--right{
    grid-column:1 / -1!important;
    width:min(100%,464px)!important;
    justify-self:center!important;
  }
}

/* ---------- COMPACT / EARLY MOBILE HANDOFF ----------
   The historical mobile components below 782px remain intact, while 783–960
   now gets a deliberate single-column shell instead of a squeezed desktop. */
@media (min-width:783px) and (max-width:960px){
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell:is(
    .ch-theme-layout--sidebar-both,
    .ch-theme-layout--sidebar-left,
    .ch-theme-layout--sidebar-right
  ){
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:14px!important;
    width:min(calc(100vw - 24px),820px)!important;
    max-width:820px!important;
    margin-inline:auto!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-community-content-wrap{
    order:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:820px!important;
    margin:0!important;
  }

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--left{order:2!important}
  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > .ch-theme-sidebar--right{order:3!important}

  body.ch-theme [class*="ch-route-community"]
  .ch-theme-community-shell > :is(.ch-theme-sidebar--left,.ch-theme-sidebar--right){
    position:static!important;
    top:auto!important;
    width:min(100%,460px)!important;
    min-width:0!important;
    max-width:460px!important;
    margin-inline:auto!important;
    padding:0!important;
  }
}

/* Mobile navigation belongs only to the compact/mobile range. This explicit
   desktop guard prevents old later rules from leaking the hamburger back out. */
@media (min-width:961px){
  body.ch-theme .ch-theme-menu-toggle,
  body.ch-theme .ch-theme-mobile-menu-toggle{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

@media (max-width:960px){
  html[data-ch-theme-mode="light"] body.ch-theme,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
    background-attachment:scroll,scroll!important;
    background-size:auto,1500px auto!important;
  }
}


/* v0.4.289 — Blue-accent marble refinement for light mode */
html[data-ch-theme-mode="light"] body.ch-theme,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
  background-color:#edf2f8!important;
  background-image:
    radial-gradient(circle at 16% 10%, rgba(255,255,255,.42), transparent 22rem),
    linear-gradient(180deg, rgba(235,244,255,.22), rgba(222,232,244,.14)),
    url("../images/communityhub-marble-light-blue.webp")!important;
  background-size:auto,auto,cover!important;
  background-position:center top, center top, center top!important;
  background-repeat:no-repeat,no-repeat,repeat-y!important;
  background-attachment:fixed,fixed,fixed!important;
}


/* v0.4.298 — Single-slab Hooligan Marble recovery.
   Restore the approved non-mirrored marble asset and make it fill the full viewport width
   without mirrored seams or side gaps. Background-only change. */
html[data-ch-theme-mode="light"] body.ch-theme,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
  background-color:#eef3f8!important;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.10)),
    url("../images/hooligan-marble-presidential.webp")!important;
  background-size:auto,cover!important;
  background-position:center top,center top!important;
  background-repeat:no-repeat,no-repeat!important;
  background-attachment:fixed,fixed!important;
}
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-main,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-main{
  background:transparent!important;
}


/* =========================================================
   v0.4.300 — Light Mode Hooligan Marble + direct frosted lanes.
   HARD GUARD: presentation only. No page geometry, widths, gaps, media scale,
   rail positioning, responsive thresholds, or Dark Mode changes.
   ========================================================= */
html[data-ch-theme-mode="light"] body.ch-theme,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
  background-color:#f3f7fb!important;
  background-image:
    radial-gradient(ellipse at -6% 23%, rgba(24,104,181,.16) 0%, rgba(83,145,201,.08) 17%, transparent 31%),
    radial-gradient(ellipse at 106% 61%, rgba(20,93,169,.15) 0%, rgba(89,151,207,.07) 18%, transparent 32%),
    linear-gradient(116deg, transparent 0 7%, rgba(200,155,64,.13) 7.15%, transparent 7.45% 91%, rgba(198,150,57,.10) 91.15%, transparent 91.45%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.08)),
    url("../images/hooligan-marble-presidential.webp")!important;
  background-size:auto,auto,auto,auto,100% auto!important;
  background-position:center top,center top,center top,center top,center top!important;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat!important;
  background-attachment:fixed,fixed,fixed,fixed,fixed!important;
}

/* On true 4K / ultra-wide viewports, preserve the visual scale of the marble
   instead of enlarging the 2200px source to the full viewport width. */
@media (min-width:2801px){
  html[data-ch-theme-mode="light"] body.ch-theme,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
    background-size:auto,auto,auto,auto,2800px auto!important;
  }
}

/* Readability frosting: direct paint on the existing lane boxes only.
   No pseudo-elements = nothing can escape through the header or alter layout. */
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-community-content-wrap,
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-sidebar--left,
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-sidebar--right,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-community-content-wrap,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-sidebar--left,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-sidebar--right{
  background-color:rgba(247,250,255,.52)!important;
  background-image:linear-gradient(180deg,rgba(255,255,255,.20),rgba(239,246,253,.10))!important;
  backdrop-filter:blur(10px) saturate(108%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(108%)!important;
  border-radius:24px!important;
  box-shadow:0 18px 40px rgba(29,48,70,.055)!important;
}

@media (max-width:960px){
  html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-community-content-wrap,
  html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-sidebar--left,
  html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-sidebar--right,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-community-content-wrap,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-sidebar--left,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-sidebar--right{
    background-color:rgba(247,250,255,.42)!important;
    backdrop-filter:blur(7px) saturate(106%)!important;
    -webkit-backdrop-filter:blur(7px) saturate(106%)!important;
  }
}


/* v0.4.301 — Approved Presidential Hooligan Marble background.
   Background-only override. No layout, rail, timeline, media, responsive, or Dark Mode changes. */
html[data-ch-theme-mode="light"] body.ch-theme,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark){
  background-color:#eef3f8!important;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.08)),
    url("../images/hooligan-marble-presidential-approved.webp")!important;
  background-size:auto,cover!important;
  background-position:center top,center top!important;
  background-repeat:no-repeat,no-repeat!important;
  background-attachment:fixed,fixed!important;
}
html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-main,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-main{
  background:transparent!important;
}


/* v0.4.302 — CH-NAV-001 responsive authority recovery.
 * Do not blanket-hide .ch-theme-community-bar--bottom by viewport width.
 * Existing --desktop / --mobile render classes and independent admin top/bottom settings
 * are authoritative. Mobile hamburger controls remain hidden above the compact breakpoint. */


/* =========================================================
   v0.4.303 — Mobile Community reaction smoothness recovery.
   Presentation only: let Core's mobile controller own picker coordinates and
   provide a short, stable reveal. No feed/card/page geometry changes.
   ========================================================= */
@media (max-width:782px){
  body.ch-theme > .ch-mobile-reaction-picker{
    left:var(--ch-mobile-reaction-left,9px)!important;
    right:auto!important;
    top:var(--ch-mobile-reaction-top,auto)!important;
    width:max-content!important;
    max-width:calc(100vw - 20px)!important;
    overflow:visible!important;
    opacity:1!important;
    transform:translateY(0) scale(1)!important;
    transform-origin:center bottom!important;
    transition:opacity .11s ease,transform .14s cubic-bezier(.2,.8,.2,1)!important;
  }
  body.ch-theme > .ch-mobile-reaction-picker.ch-mobile-picker-positioning{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(4px) scale(.965)!important;
  }
  body.ch-theme > .ch-mobile-reaction-picker.ch-mobile-picker-ready{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0) scale(1)!important;
  }
}
@media (prefers-reduced-motion:reduce){
  body.ch-theme > .ch-mobile-reaction-picker{transition:none!important}
}

/* =========================================================
   v0.4.304 — Hooligan Arcade / Games Hub presentation
   Scoped to the Games route and earned Arcade Champion Skin.
   Does not alter global page geometry or default Skin zero-state.
   ========================================================= */
.ch-games-hub{--ch-arcade-gold:#d9b85c;--ch-arcade-gold-2:#f4de93;--ch-arcade-ink:#111827;--ch-arcade-blue:#225ea8;display:grid;gap:22px;width:100%;min-width:0}
.ch-games-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.34fr);gap:22px;align-items:stretch;padding:28px;border:1px solid rgba(132,105,39,.22);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(250,247,237,.92));box-shadow:0 18px 44px rgba(55,45,20,.10),inset 0 1px rgba(255,255,255,.9)}
.ch-games-hero::after{content:"";position:absolute;inset:auto -6% -48% 42%;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(217,184,92,.19),transparent 68%);pointer-events:none}
.ch-games-hero__copy{position:relative;z-index:1;display:grid;align-content:center;justify-items:start;gap:10px}.ch-games-kicker{font-size:.72rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#8a6a17}.ch-games-hero h1{margin:0;font-size:clamp(2rem,4vw,3.35rem);line-height:.96;letter-spacing:-.045em;color:#111827}.ch-games-hero p{max-width:720px;margin:0;color:#596579;font-size:.98rem;line-height:1.6}.ch-games-hero__actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}
.ch-games-primary-button,.ch-games-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:12px;font-size:.79rem;font-weight:900;text-decoration:none!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.ch-games-primary-button{border:1px solid #8f6f1c;background:linear-gradient(135deg,#f3da86,#c99c32);color:#1c1608!important;box-shadow:0 8px 20px rgba(164,120,28,.20)}.ch-games-secondary-button{border:1px solid #d6dde7;background:rgba(255,255,255,.82);color:#25364c!important}.ch-games-primary-button:hover,.ch-games-secondary-button:hover{transform:translateY(-1px)}.ch-games-primary-button:focus-visible,.ch-games-secondary-button:focus-visible{outline:3px solid rgba(34,94,168,.26);outline-offset:2px}
.ch-games-wallet{position:relative;z-index:1;display:grid;align-content:center;gap:4px;padding:20px;border-radius:19px;border:1px solid rgba(174,139,47,.30);background:linear-gradient(155deg,rgba(25,31,42,.97),rgba(40,43,48,.94));color:#fff;box-shadow:0 14px 30px rgba(17,24,39,.16),inset 0 1px rgba(255,255,255,.07)}.ch-games-wallet span{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#e3c977}.ch-games-wallet strong{font-size:clamp(1.45rem,3vw,2.15rem);line-height:1.05;color:#fff7d8}.ch-games-wallet small{font-size:.68rem;color:#b9c2ce;line-height:1.4}
.ch-games-dashboard{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr);gap:14px}.ch-games-featured,.ch-games-skin-vault{display:grid;gap:12px;padding:20px;border:1px solid #dce3eb;border-radius:19px;background:rgba(255,255,255,.91);box-shadow:0 10px 30px rgba(30,41,59,.07)}.ch-games-featured{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.ch-games-card__icon{display:grid;place-items:center;flex:0 0 auto;width:52px;height:52px;border-radius:15px;border:1px solid rgba(190,148,41,.28);background:linear-gradient(145deg,#fff9dd,#efd47e);color:#5a430d;font-size:1.35rem;font-weight:900;box-shadow:inset 0 1px #fff,0 7px 18px rgba(124,91,22,.10)}.ch-games-card__copy{display:grid;gap:3px;min-width:0}.ch-games-card__copy>span,.ch-games-skin-vault>div>span,.ch-games-section-head span{font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8b6b1d}.ch-games-card__copy h2,.ch-games-card__copy h3,.ch-games-skin-vault h2,.ch-games-section-head h2{margin:0;color:#172033;letter-spacing:-.02em}.ch-games-card__copy h2{font-size:1.28rem}.ch-games-card__copy h3{font-size:1rem}.ch-games-card__copy p,.ch-games-skin-vault p,.ch-games-section-head p{margin:0;color:#667489;line-height:1.5;font-size:.78rem}.ch-games-featured__stats{display:grid;gap:4px;min-width:145px}.ch-games-featured__stats span{display:flex;justify-content:space-between;gap:12px;padding:6px 9px;border-radius:9px;background:#f4f7fa;color:#6a7788;font-size:.69rem}.ch-games-featured__stats strong{color:#1f334b}
.ch-games-skin-vault{grid-template-columns:auto minmax(0,1fr);align-items:center;align-content:center;background:linear-gradient(145deg,rgba(27,31,42,.98),rgba(46,42,35,.96));border-color:rgba(215,181,85,.30);color:#fff}.ch-games-skin-vault__badge{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;border:2px solid #d9b85c;background:radial-gradient(circle at 40% 35%,#fff5c7,#d8ae43 42%,#59420d 78%);color:#1b1608;font-size:1.35rem;box-shadow:0 0 0 5px rgba(217,184,92,.08),0 0 24px rgba(217,184,92,.20)}.ch-games-skin-vault h2{color:#fff6d2}.ch-games-skin-vault p{color:#c9d0d8}.ch-games-skin-vault .ch-games-secondary-button{grid-column:1/-1;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:#fff5ce!important}.ch-games-progress-label{grid-column:1/-1;display:block;padding:7px 10px;border-radius:999px;background:rgba(217,184,92,.10);color:#f1d77d;text-align:center;font-size:.72rem;font-weight:900}.ch-games-skin-vault.is-unlocked{box-shadow:0 11px 32px rgba(119,87,18,.16),inset 0 0 0 1px rgba(245,221,146,.08)}
.ch-games-section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:1px 2px}.ch-games-section-head>div{display:grid;gap:2px}.ch-games-section-head p{max-width:520px;text-align:right}.ch-games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ch-games-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;min-height:128px;padding:16px;border:1px solid #dce3eb;border-radius:17px;background:rgba(255,255,255,.90);color:inherit!important;text-decoration:none!important;box-shadow:0 8px 25px rgba(30,41,59,.055);transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease}.ch-games-card>strong{grid-column:2;font-size:.7rem;color:#315d91}.ch-games-card.is-live:hover{transform:translateY(-2px);border-color:#c7a74f;box-shadow:0 13px 30px rgba(60,48,18,.11)}.ch-games-card.is-coming{opacity:.72}.ch-games-card.is-coming .ch-games-card__icon{filter:saturate(.55)}
.ch-games-economy-note,.ch-games-empty{padding:18px 20px;border:1px solid #dce3eb;border-radius:16px;background:rgba(255,255,255,.82);color:#657185;font-size:.76rem;line-height:1.55}.ch-games-economy-note{display:flex;gap:12px;align-items:flex-start}.ch-games-economy-note strong{color:#26384f;white-space:nowrap}.ch-games-economy-note p{margin:0}.ch-games-empty{text-align:center;display:grid;justify-items:center;gap:10px;padding:36px}.ch-games-empty h1,.ch-games-empty p{margin:0}.ch-games-empty__icon{font-size:2rem}.ch-games-backbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dce3eb;border-radius:13px;background:rgba(255,255,255,.84);font-size:.76rem;font-weight:800}.ch-games-backbar a{text-decoration:none!important;color:#315f93}.ch-games-backbar span{color:#69788a}

/* Reflex Rush */
.ch-reflex-rush{display:grid;gap:14px;padding:20px;border:1px solid #dce3eb;border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 12px 34px rgba(30,41,59,.08)}.ch-reflex-rush__hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ch-reflex-rush__hero>div:first-child{display:grid;gap:5px}.ch-reflex-rush__hero h2{margin:0;color:#162033;font-size:1.55rem}.ch-reflex-rush__hero p{margin:0;max-width:650px;color:#657388;font-size:.8rem;line-height:1.5}.ch-reflex-rush__balance{display:grid;gap:2px;min-width:170px;padding:10px 12px;border-radius:12px;background:#172235;color:#fff}.ch-reflex-rush__balance span{font-size:.64rem;color:#c2ccd8;text-transform:uppercase;letter-spacing:.07em}.ch-reflex-rush__balance strong{font-size:1.05rem;color:#f4df99}.ch-reflex-rush__meta{display:flex;flex-wrap:wrap;gap:7px}.ch-reflex-rush__meta>span{padding:6px 9px;border:1px solid #dce4ec;border-radius:999px;background:#f7f9fb;color:#6b7788;font-size:.69rem}.ch-reflex-rush__meta strong{color:#273b54}.ch-reflex-rush__payouts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.ch-reflex-rush__payouts>span{display:grid;justify-items:center;gap:1px;padding:7px;border:1px solid rgba(195,156,53,.24);border-radius:10px;background:linear-gradient(145deg,#fffaf0,#f8f3e4)}.ch-reflex-rush__payouts strong{font-size:.78rem;color:#6f5515}.ch-reflex-rush__payouts small{font-size:.62rem;color:#7d7051}
.ch-reflex-rush__stage{position:relative;display:grid;gap:8px;padding:14px;border-radius:18px;border:1px solid #d7e0ea;background:linear-gradient(145deg,#101929,#1b2738);box-shadow:inset 0 1px rgba(255,255,255,.05)}.ch-reflex-rush__hud{display:flex;justify-content:space-between;color:#fff}.ch-reflex-rush__hud>div{display:flex;align-items:baseline;gap:6px}.ch-reflex-rush__hud span{font-size:.63rem;color:#aebccc;text-transform:uppercase;letter-spacing:.08em}.ch-reflex-rush__hud strong{font-size:1.1rem;color:#f5df91}.ch-reflex-rush__timer{height:5px;border-radius:999px;overflow:hidden;background:#2c3a4d}.ch-reflex-rush__timer i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d3ad42,#f6df8d);transition:width .08s linear}.ch-reflex-rush__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;aspect-ratio:1.45/1;min-height:280px}.ch-reflex-rush__cell{position:relative;border:1px solid #35475d;border-radius:15px;background:linear-gradient(145deg,#172438,#101a29);box-shadow:inset 0 1px rgba(255,255,255,.04);touch-action:manipulation;transition:transform .08s ease,border-color .08s ease,background .08s ease,box-shadow .08s ease}.ch-reflex-rush__cell:disabled{opacity:1}.ch-reflex-rush__cell>span:first-child{position:absolute;left:50%;top:50%;width:42px;height:42px;border-radius:50%;transform:translate(-50%,-50%) scale(.48);background:radial-gradient(circle at 38% 32%,#fff8c8,#f0ca5c 38%,#9a6a11 70%);opacity:0;box-shadow:0 0 0 7px rgba(241,205,94,.12),0 0 28px rgba(241,205,94,.38);transition:opacity .08s ease,transform .08s ease}.ch-reflex-rush__cell.is-target{cursor:pointer;border-color:#d7b750;background:linear-gradient(145deg,#26334a,#111c2e);box-shadow:inset 0 0 0 1px rgba(246,224,151,.12),0 0 18px rgba(207,168,60,.11)}.ch-reflex-rush__cell.is-target>span:first-child{opacity:1;transform:translate(-50%,-50%) scale(1)}.ch-reflex-rush__cell.is-target:active{transform:scale(.975)}.ch-reflex-rush__start-card{position:absolute;inset:54px 14px 14px;z-index:3;display:grid;place-items:center;align-content:center;gap:8px;padding:20px;border-radius:15px;background:rgba(10,16,27,.88);backdrop-filter:blur(8px);text-align:center;color:#fff}.ch-reflex-rush__start-card[hidden]{display:none}.ch-reflex-rush__start-card strong{font-size:1.15rem;color:#fff1b8}.ch-reflex-rush__start-card p{max-width:430px;margin:0;color:#bcc8d6;font-size:.76rem;line-height:1.5}.ch-reflex-rush__result{min-height:42px;padding:10px 12px;border:1px solid #dce4ec;border-radius:11px;background:#f7f9fb;color:#5f6e81;font-size:.77rem;display:flex;align-items:center}.ch-reflex-rush__result.is-win{border-color:#9ad7ae;background:#f1fff5;color:#21663b;font-weight:800}.ch-reflex-rush__result.is-loss{border-color:#e3d5b0;background:#fffaf0;color:#765f23}.ch-reflex-rush__result.is-error{border-color:#e8b4b4;background:#fff4f4;color:#9b2f2f}.ch-reflex-rush__result.is-loading{color:#4b6380}.ch-reflex-rush__skin{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid rgba(197,158,56,.24);border-radius:13px;background:linear-gradient(145deg,#fffaf0,#f8f2e1)}.ch-reflex-rush__skin-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#1a2536;color:#efd16e;box-shadow:0 0 0 4px rgba(220,181,76,.10)}.ch-reflex-rush__skin>div:nth-child(2){display:grid;gap:1px}.ch-reflex-rush__skin span{font-size:.62rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#9a781c}.ch-reflex-rush__skin strong{font-size:.8rem;color:#27364a}.ch-reflex-rush__skin small{font-size:.67rem;color:#746d5d}.ch-reflex-rush__skin.is-unlocked{border-color:#c5a145;background:linear-gradient(145deg,#fff9da,#f5e7ae)}

/* Game-earned Skin: Avatar slot only. */
.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar{overflow:visible!important;isolation:isolate}.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{content:"";position:absolute;inset:-2px;border-radius:50%;padding:1.25px;background:conic-gradient(from 0deg,#d4ad3d,#fff1a8,#43c7ff,#8d5cff,#d4ad3d);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;box-shadow:0 0 7px rgba(67,199,255,.17),0 0 9px rgba(214,176,62,.14);animation:chArcadeChampionSpin 7s linear infinite;z-index:3;pointer-events:none}.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{content:"⚡";position:absolute;right:-3px;top:-5px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,242,174,.68);background:linear-gradient(145deg,#fff0a4,#d0a336 58%,#26324a);color:#172033;font-size:8px;line-height:1;box-shadow:0 1px 5px rgba(31,41,55,.18),0 0 6px rgba(68,198,255,.16);z-index:4;pointer-events:none;animation:chArcadeChampionBadgePulseBob 2.6s ease-in-out infinite;transform-origin:center}@keyframes chArcadeChampionSpin{to{transform:rotate(360deg)}}@keyframes chArcadeChampionBadgePulseBob{0%,100%{transform:translateY(0) scale(1);filter:brightness(1);box-shadow:0 1px 5px rgba(31,41,55,.18),0 0 6px rgba(68,198,255,.16)}50%{transform:translateY(-1px) scale(1.03);filter:brightness(1.04);box-shadow:0 2px 7px rgba(31,41,55,.17),0 0 8px rgba(68,198,255,.22)}}@media(max-width:782px){.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{inset:-1.5px;padding:1px;box-shadow:0 0 5px rgba(67,199,255,.15),0 0 7px rgba(214,176,62,.12)}.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{right:-2px;top:-4px;width:14px;height:14px;font-size:7px}}

html[data-ch-theme-mode="dark"] .ch-games-hero,body.ch-theme-mode-dark .ch-games-hero{background:linear-gradient(135deg,rgba(18,26,38,.96),rgba(29,30,33,.95));border-color:rgba(220,184,82,.24);box-shadow:0 18px 44px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.04)}html[data-ch-theme-mode="dark"] .ch-games-hero h1,body.ch-theme-mode-dark .ch-games-hero h1{color:#f4f7fb}html[data-ch-theme-mode="dark"] .ch-games-hero p,body.ch-theme-mode-dark .ch-games-hero p{color:#aeb9c8}html[data-ch-theme-mode="dark"] .ch-games-secondary-button,body.ch-theme-mode-dark .ch-games-secondary-button{background:rgba(255,255,255,.06);border-color:#3b4a5e;color:#e9eff7!important}html[data-ch-theme-mode="dark"] :is(.ch-games-featured,.ch-games-card,.ch-games-backbar,.ch-reflex-rush),body.ch-theme-mode-dark :is(.ch-games-featured,.ch-games-card,.ch-games-backbar,.ch-reflex-rush){background:rgba(18,27,40,.94);border-color:#34475d;color:#edf3fa;box-shadow:0 10px 30px rgba(0,0,0,.18)}html[data-ch-theme-mode="dark"] :is(.ch-games-card__copy h2,.ch-games-card__copy h3,.ch-games-section-head h2,.ch-reflex-rush__hero h2),body.ch-theme-mode-dark :is(.ch-games-card__copy h2,.ch-games-card__copy h3,.ch-games-section-head h2,.ch-reflex-rush__hero h2){color:#f1f5f9}html[data-ch-theme-mode="dark"] :is(.ch-games-card__copy p,.ch-games-section-head p,.ch-reflex-rush__hero p),body.ch-theme-mode-dark :is(.ch-games-card__copy p,.ch-games-section-head p,.ch-reflex-rush__hero p){color:#9facbd}html[data-ch-theme-mode="dark"] .ch-games-featured__stats span,body.ch-theme-mode-dark .ch-games-featured__stats span{background:#223044;color:#9fb0c4}html[data-ch-theme-mode="dark"] .ch-games-featured__stats strong,body.ch-theme-mode-dark .ch-games-featured__stats strong{color:#edf4fb}html[data-ch-theme-mode="dark"] :is(.ch-games-economy-note,.ch-games-empty),body.ch-theme-mode-dark :is(.ch-games-economy-note,.ch-games-empty){background:rgba(17,26,39,.90);border-color:#34475d;color:#aeb9c8}html[data-ch-theme-mode="dark"] .ch-games-economy-note strong,body.ch-theme-mode-dark .ch-games-economy-note strong{color:#eef4fb}html[data-ch-theme-mode="dark"] .ch-reflex-rush__meta>span,body.ch-theme-mode-dark .ch-reflex-rush__meta>span{background:#1f2d40;border-color:#34475d;color:#a9b7c8}html[data-ch-theme-mode="dark"] .ch-reflex-rush__meta strong,body.ch-theme-mode-dark .ch-reflex-rush__meta strong{color:#edf4fb}html[data-ch-theme-mode="dark"] .ch-reflex-rush__payouts>span,body.ch-theme-mode-dark .ch-reflex-rush__payouts>span{background:linear-gradient(145deg,#302b1d,#1d2635);border-color:rgba(211,177,78,.28)}html[data-ch-theme-mode="dark"] .ch-reflex-rush__payouts small,body.ch-theme-mode-dark .ch-reflex-rush__payouts small{color:#b9ad87}html[data-ch-theme-mode="dark"] .ch-reflex-rush__result,body.ch-theme-mode-dark .ch-reflex-rush__result{background:#1d2a3b;border-color:#34475d;color:#b8c5d4}html[data-ch-theme-mode="dark"] .ch-reflex-rush__result.is-win,body.ch-theme-mode-dark .ch-reflex-rush__result.is-win{background:#162c22;border-color:#37684d;color:#9be0b5}html[data-ch-theme-mode="dark"] .ch-reflex-rush__result.is-loss,body.ch-theme-mode-dark .ch-reflex-rush__result.is-loss{background:#302a1c;border-color:#665838;color:#e0c77f}html[data-ch-theme-mode="dark"] .ch-reflex-rush__skin,body.ch-theme-mode-dark .ch-reflex-rush__skin{background:linear-gradient(145deg,#2e2a1d,#182333);border-color:#554b30}html[data-ch-theme-mode="dark"] .ch-reflex-rush__skin strong,body.ch-theme-mode-dark .ch-reflex-rush__skin strong{color:#f2ead5}html[data-ch-theme-mode="dark"] .ch-reflex-rush__skin small,body.ch-theme-mode-dark .ch-reflex-rush__skin small{color:#b9b19f}

@media(max-width:900px){.ch-games-hero{grid-template-columns:1fr}.ch-games-dashboard{grid-template-columns:1fr}.ch-games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ch-games-featured{grid-template-columns:auto minmax(0,1fr)}.ch-games-featured__stats,.ch-games-featured>.ch-games-primary-button{grid-column:1/-1}.ch-games-section-head{align-items:flex-start;flex-direction:column}.ch-games-section-head p{text-align:left}.ch-reflex-rush__hero{flex-direction:column}.ch-reflex-rush__balance{width:100%;min-width:0}.ch-reflex-rush__grid{min-height:330px}}
@media(max-width:620px){.ch-games-hub{gap:16px}.ch-games-hero{padding:19px;border-radius:19px}.ch-games-hero h1{font-size:2.18rem}.ch-games-wallet{padding:15px}.ch-games-grid{grid-template-columns:1fr}.ch-games-featured{grid-template-columns:auto minmax(0,1fr);padding:16px}.ch-games-skin-vault{padding:16px}.ch-games-card{min-height:112px;padding:14px}.ch-games-card__icon{width:46px;height:46px;border-radius:13px}.ch-games-economy-note{display:grid}.ch-reflex-rush{padding:14px;border-radius:17px}.ch-reflex-rush__payouts{grid-template-columns:repeat(5,minmax(54px,1fr));overflow-x:auto;padding-bottom:2px}.ch-reflex-rush__grid{min-height:300px;aspect-ratio:1/1.05;gap:7px}.ch-reflex-rush__cell{border-radius:13px}.ch-reflex-rush__cell>span:first-child{width:38px;height:38px}.ch-reflex-rush__start-card{inset:54px 14px 14px}.ch-games-primary-button,.ch-games-secondary-button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.ch-games-primary-button,.ch-games-secondary-button,.ch-games-card,.ch-reflex-rush__cell,.ch-reflex-rush__cell>span:first-child{transition:none!important}.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before,.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{animation:none!important}}

/* =========================================================
   v0.4.307 — Reflex Rush responsive game-canvas authority
   Scope: Games Hub game view only. Keeps the game board usable
   across desktop, tablet, phone, landscape, and narrow portrait.
   Does not alter CommunityHub global geometry or Arcade hub cards.
   ========================================================= */
.ch-games-hub--game .ch-reflex-rush{
  width:min(100%,1040px);
  margin-inline:auto;
}
.ch-games-hub--game .ch-reflex-rush__stage{
  width:min(100%,860px);
  margin-inline:auto;
}
.ch-games-hub--game .ch-reflex-rush__grid{
  width:100%;
  min-height:0;
  aspect-ratio:1.5/1;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.ch-games-hub--game .ch-reflex-rush__cell>span:first-child{
  width:clamp(34px,3.2vw,48px);
  height:clamp(34px,3.2vw,48px);
}

@media (min-width:1440px){
  .ch-games-hub--game .ch-reflex-rush{width:min(100%,1080px)}
  .ch-games-hub--game .ch-reflex-rush__stage{width:min(100%,900px)}
}

@media (max-width:900px){
  .ch-games-hub--game .ch-reflex-rush{width:100%}
  .ch-games-hub--game .ch-reflex-rush__stage{width:min(100%,720px)}
  .ch-games-hub--game .ch-reflex-rush__grid{
    min-height:0;
    aspect-ratio:1.35/1;
  }
}

@media (max-width:620px){
  .ch-games-hub--game .ch-reflex-rush{
    width:100%;
    padding:12px;
    gap:11px;
  }
  .ch-games-hub--game .ch-reflex-rush__stage{
    width:100%;
    padding:10px;
    gap:7px;
    border-radius:15px;
  }
  .ch-games-hub--game .ch-reflex-rush__grid{
    min-height:0;
    aspect-ratio:1/1.02;
    gap:6px;
  }
  .ch-games-hub--game .ch-reflex-rush__cell{
    min-width:0;
    min-height:0;
    border-radius:11px;
  }
  .ch-games-hub--game .ch-reflex-rush__cell>span:first-child{
    width:clamp(34px,11vw,46px);
    height:clamp(34px,11vw,46px);
  }
  .ch-games-hub--game .ch-reflex-rush__start-card{
    inset:50px 10px 10px;
    padding:15px;
  }
}

@media (max-width:380px){
  .ch-games-hub--game .ch-reflex-rush{padding:10px}
  .ch-games-hub--game .ch-reflex-rush__stage{padding:8px}
  .ch-games-hub--game .ch-reflex-rush__grid{gap:5px}
  .ch-games-hub--game .ch-reflex-rush__hud strong{font-size:1rem}
}

@media (max-height:540px) and (orientation:landscape){
  .ch-games-hub--game .ch-reflex-rush{width:min(100%,900px)}
  .ch-games-hub--game .ch-reflex-rush__stage{width:min(100%,700px)}
  .ch-games-hub--game .ch-reflex-rush__grid{aspect-ratio:1.8/1}
  .ch-games-hub--game .ch-reflex-rush__cell>span:first-child{width:34px;height:34px}
}


/* =========================================================
   v0.4.311 — Light Marble Depth + Mobile Clarity + Arcade Glow.
   Presentation-only authority.
   HARD GUARD: no geometry, widths, card dimensions, media scale,
   rail layout, responsive ownership, or Dark Mode changes.
   ========================================================= */

/* Arcade Champion: keep the compact ring geometry, extend only the light aura. */
.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
  box-shadow:
    0 0 7px rgba(67,199,255,.22),
    0 0 14px rgba(67,199,255,.14),
    0 0 22px rgba(214,176,62,.13),
    0 0 30px rgba(214,176,62,.07)!important;
}
@media(max-width:782px){
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
    box-shadow:
      0 0 5px rgba(67,199,255,.20),
      0 0 10px rgba(67,199,255,.12),
      0 0 16px rgba(214,176,62,.11),
      0 0 22px rgba(214,176,62,.06)!important;
  }
}

/* Desktop Light Mode: ceramic surfaces cast a directional contact shadow onto
   the marble slab so they read as physically raised tiles, without moving them. */
@media(min-width:961px){
  html[data-ch-theme-mode="light"] body.ch-theme :is(
    .ch-theme-widget,
    .widget,
    .ch-theme-post-card,
    .ch-theme-page-shell,
    .ch-theme-single-header,
    .ch-theme-content-wrap,
    .ch-community-feed-header,
    .ch-composer,
    .ch-activity-card
  ),
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) :is(
    .ch-theme-widget,
    .widget,
    .ch-theme-post-card,
    .ch-theme-page-shell,
    .ch-theme-single-header,
    .ch-theme-content-wrap,
    .ch-community-feed-header,
    .ch-composer,
    .ch-activity-card
  ){
    box-shadow:
      0 24px 48px rgba(28,42,58,.14),
      0 7px 15px rgba(28,42,58,.085),
      0 2px 4px rgba(28,42,58,.045),
      inset 0 1px 0 rgba(255,255,255,.94)!important;
  }
}

/* Light Mode mobile/compact: remove the lane frosting itself so the approved
   Hooligan Marble remains visible between the individual ceramic cards.
   Cards retain their own surfaces and readability. */
@media(max-width:960px){
  html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-community-content-wrap,
  html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-sidebar--left,
  html[data-ch-theme-mode="light"] body.ch-theme .ch-theme-community-shell--community > .ch-theme-sidebar--right,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-community-content-wrap,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-sidebar--left,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-theme-community-shell--community > .ch-theme-sidebar--right{
    background-color:transparent!important;
    background-image:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:none!important;
  }
}


/* =========================================================
   v0.4.312 — Arcade Champion Aura Redesign + Mobile Mode Toggle Polish.
   LOCKED GUARDS carried forward from approved v0.4.311:
   - Desktop Light Mode ceramic shadow/depth MUST NOT change.
   - Mobile/compact Light Mode community lanes remain transparent/no blur.
   - Desktop Light/Dark toggle MUST NOT change.
   Scope below: Arcade Champion effect + <=782px mode-toggle presentation only.
   ========================================================= */

/* Arcade Champion v2 — compact championship ring with a dramatic energy aura.
   The geometry hugs the avatar; the light is allowed to travel farther than the ring. */
.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
  inset:-2px!important;
  padding:1.35px!important;
  background:conic-gradient(from 0deg,
    #f2c84b 0deg,
    #fff2a9 58deg,
    #55d7ff 120deg,
    #5a8dff 178deg,
    #a96dff 230deg,
    #fff0a0 302deg,
    #f2c84b 360deg)!important;
  box-shadow:
    0 0 5px rgba(255,231,129,.92),
    0 0 11px rgba(250,198,60,.72),
    0 0 22px rgba(76,205,255,.48),
    0 0 38px rgba(57,139,255,.30),
    0 0 56px rgba(168,94,255,.18)!important;
  filter:drop-shadow(0 0 8px rgba(255,209,77,.38));
  animation:chArcadeChampionSpin 6.6s linear infinite,
            chArcadeChampionAura 2.8s ease-in-out infinite!important;
}
.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
  right:-2px!important;
  top:-4px!important;
  width:15px!important;
  height:15px!important;
  font-size:7px!important;
  border:1px solid rgba(255,246,190,.88)!important;
  background:radial-gradient(circle at 34% 28%,#fff9d7 0 16%,#ffd85d 38%,#c48a18 72%,#44330b 100%)!important;
  color:#34270a!important;
  box-shadow:
    0 1px 4px rgba(0,0,0,.28),
    0 0 7px rgba(255,214,73,.72),
    0 0 13px rgba(77,204,255,.30)!important;
  animation:chArcadeChampionMedallion 2.5s ease-in-out infinite!important;
}
@keyframes chArcadeChampionAura{
  0%,100%{filter:drop-shadow(0 0 7px rgba(255,209,77,.30));opacity:.92}
  50%{filter:drop-shadow(0 0 15px rgba(77,202,255,.52));opacity:1}
}
@keyframes chArcadeChampionMedallion{
  0%,100%{transform:translate3d(0,0,0) scale(1);filter:brightness(1)}
  50%{transform:translate3d(0,-1px,0) scale(1.055);filter:brightness(1.10)}
}

/* Mobile/touch: same identity, cleaner footprint. No loose badge bobbing across the header.
   The aura remains visible but the badge is anchored tightly to the avatar edge. */
@media(max-width:782px){
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
    inset:-1px!important;
    padding:1px!important;
    box-shadow:
      0 0 4px rgba(255,231,129,.88),
      0 0 9px rgba(250,198,60,.62),
      0 0 17px rgba(76,205,255,.40),
      0 0 27px rgba(57,139,255,.22)!important;
    filter:drop-shadow(0 0 5px rgba(255,209,77,.30));
    animation:chArcadeChampionSpin 7.2s linear infinite,
              chArcadeChampionAuraMobile 3.2s ease-in-out infinite!important;
  }
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
    right:-1px!important;
    top:-2px!important;
    width:11px!important;
    height:11px!important;
    font-size:5.5px!important;
    border-width:1px!important;
    box-shadow:
      0 1px 3px rgba(0,0,0,.24),
      0 0 5px rgba(255,214,73,.64),
      0 0 8px rgba(77,204,255,.22)!important;
    animation:chArcadeChampionMedallionMobile 3s ease-in-out infinite!important;
  }
  @keyframes chArcadeChampionAuraMobile{
    0%,100%{filter:drop-shadow(0 0 4px rgba(255,209,77,.25));opacity:.94}
    50%{filter:drop-shadow(0 0 9px rgba(77,202,255,.42));opacity:1}
  }
  @keyframes chArcadeChampionMedallionMobile{
    0%,100%{transform:scale(1);filter:brightness(1)}
    50%{transform:scale(1.04);filter:brightness(1.08)}
  }

  /* Mobile-only mode control. Desktop styling is intentionally untouched/frozen.
     Compact glass capsule with a tactile sun/moon jewel and 44px minimum touch target. */
  body.ch-theme .ch-theme-mode-toggle{
    width:46px!important;
    min-width:46px!important;
    height:36px!important;
    min-height:44px!important;
    padding:4px!important;
    justify-content:center!important;
    border-radius:999px!important;
    border:1px solid color-mix(in srgb,var(--ch-theme-border) 76%,rgba(255,255,255,.34))!important;
    background:color-mix(in srgb,var(--ch-theme-surface) 88%,transparent)!important;
    box-shadow:
      0 5px 14px rgba(10,25,45,.12),
      inset 0 1px 0 rgba(255,255,255,.42)!important;
    backdrop-filter:blur(10px) saturate(128%);
    -webkit-backdrop-filter:blur(10px) saturate(128%);
    transform:none!important;
  }
  body.ch-theme .ch-theme-mode-toggle-icon{
    display:grid!important;
    place-items:center;
    width:27px;
    height:27px;
    border-radius:50%;
    font-size:15px;
    line-height:1;
    color:#6a4b00;
    background:radial-gradient(circle at 35% 28%,#fffbe1,#ffe780 46%,#e9b52e 100%);
    box-shadow:0 2px 7px rgba(27,37,52,.18),0 0 7px rgba(255,210,62,.24);
    transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease;
  }
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mode-toggle{
    background:rgba(13,23,37,.78)!important;
    border-color:rgba(125,157,196,.28)!important;
    box-shadow:0 5px 14px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.07)!important;
  }
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mode-toggle-icon{
    color:#eef5ff;
    background:radial-gradient(circle at 36% 28%,#7d99bd 0 12%,#314765 48%,#111b2b 100%);
    box-shadow:0 2px 7px rgba(0,0,0,.28),0 0 8px rgba(102,177,255,.25);
  }
  body.ch-theme .ch-theme-mode-toggle:active .ch-theme-mode-toggle-icon{transform:scale(.90)}
}

@media(prefers-reduced-motion:reduce){
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before,
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{animation:none!important}
  .ch-theme-mode-toggle-icon{transition:none!important}
}

/* =========================================================
   v0.4.313 — Arcade Champion Halo v3 + Mobile Mode Toggle Recovery
   HARD GUARDS PRESERVED:
   - v0.4.311 desktop Light Mode ceramic depth/shadow is LOCKED.
   - v0.4.311 mobile/compact transparent community lanes are LOCKED.
   - desktop Light/Dark toggle presentation is LOCKED.
   Scope: Arcade Champion Avatar Skin treatment + <=782px mode-toggle only.
   ========================================================= */

/* Arcade Champion Halo v3
   A deliberately thick championship ring with a separate long-range aura.
   The medallion scales from the avatar itself so profile cards, post avatars,
   widgets, header avatars, and online/member surfaces keep one identity. */
.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar{
  overflow:visible!important;
  isolation:isolate;
}
.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
  inset:-3px!important;
  padding:2.35px!important;
  border-radius:50%!important;
  background:conic-gradient(from 0deg,
    #ffd84e 0deg,
    #fff6b7 44deg,
    #ffc52f 88deg,
    #25d7ff 138deg,
    #148dff 190deg,
    #8f5cff 246deg,
    #e77cff 286deg,
    #fff0a1 330deg,
    #ffd84e 360deg)!important;
  box-shadow:
    0 0 0 1px rgba(194,124,10,.58),
    0 0 7px rgba(255,210,56,.98),
    0 0 15px rgba(255,188,24,.82),
    0 0 27px rgba(36,202,255,.66),
    0 0 43px rgba(73,127,255,.48),
    0 0 62px rgba(151,84,255,.34),
    0 0 82px rgba(255,197,43,.20)!important;
  filter:saturate(1.18) drop-shadow(0 0 8px rgba(255,184,24,.52))!important;
  animation:chArcadeChampionSpin 6.4s linear infinite,
            chArcadeChampionHaloBreath 2.75s ease-in-out infinite!important;
}

/* Light marble needs more contrast than dark surfaces: reinforce the halo
   with saturated color and a fine amber edge so it remains visible on white. */
html:not([data-ch-theme-mode="dark"]) body.ch-theme .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before,
body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
  box-shadow:
    0 0 0 1px rgba(151,86,0,.72),
    0 0 6px rgba(255,183,0,.98),
    0 0 14px rgba(255,205,37,.88),
    0 0 26px rgba(0,177,255,.70),
    0 0 42px rgba(56,91,255,.52),
    0 0 62px rgba(147,60,255,.38),
    0 0 84px rgba(255,169,0,.24)!important;
  filter:saturate(1.30) contrast(1.04) drop-shadow(0 0 9px rgba(255,162,0,.58))!important;
}

.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
  right:-7%!important;
  top:-10%!important;
  width:34%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  min-width:0!important;
  min-height:0!important;
  border-width:1px!important;
  border-color:rgba(255,247,194,.96)!important;
  background:radial-gradient(circle at 33% 27%,#fffde9 0 13%,#ffe36e 34%,#c98a13 69%,#4d3408 100%)!important;
  color:#342204!important;
  font-size:7px!important;
  box-shadow:
    0 1px 4px rgba(0,0,0,.30),
    0 0 7px rgba(255,205,42,.88),
    0 0 13px rgba(32,190,255,.46)!important;
  transform-origin:50% 72%!important;
  animation:chArcadeChampionMedallionV3 2.35s cubic-bezier(.45,.05,.45,.95) infinite!important;
}

@keyframes chArcadeChampionHaloBreath{
  0%,100%{opacity:.92}
  50%{opacity:1}
}
@keyframes chArcadeChampionMedallionV3{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1);filter:brightness(1)}
  48%{transform:translate3d(0,-2px,0) rotate(2.5deg) scale(1.08);filter:brightness(1.13)}
  62%{transform:translate3d(0,-1px,0) rotate(-1deg) scale(1.04);filter:brightness(1.08)}
}

/* Mobile/touch: preserve the approved tight placement, but use a thicker ring
   and an obvious-yet-smooth medallion bob. Aura radius is restrained so it
   does not collide visually with neighboring mobile controls. */
@media(max-width:782px){
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
    inset:-2.5px!important;
    padding:2px!important;
    box-shadow:
      0 0 0 1px rgba(180,111,6,.62),
      0 0 6px rgba(255,205,43,.94),
      0 0 12px rgba(255,181,20,.72),
      0 0 20px rgba(38,199,255,.52),
      0 0 30px rgba(89,94,255,.34),
      0 0 40px rgba(151,76,255,.22)!important;
    filter:saturate(1.18) drop-shadow(0 0 6px rgba(255,185,27,.44))!important;
    animation:chArcadeChampionSpin 7s linear infinite,
              chArcadeChampionHaloBreath 3s ease-in-out infinite!important;
  }
  html:not([data-ch-theme-mode="dark"]) body.ch-theme .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before,
  body.ch-theme:not(.ch-theme-mode-dark):not(.ch-theme-dark) .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
    box-shadow:
      0 0 0 1px rgba(142,81,0,.72),
      0 0 5px rgba(255,181,0,.96),
      0 0 11px rgba(255,204,36,.82),
      0 0 19px rgba(0,174,255,.58),
      0 0 29px rgba(79,87,255,.38),
      0 0 40px rgba(151,68,255,.25)!important;
  }
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
    right:-5%!important;
    top:-8%!important;
    width:33%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    font-size:6px!important;
    box-shadow:
      0 1px 3px rgba(0,0,0,.28),
      0 0 6px rgba(255,205,42,.82),
      0 0 10px rgba(32,190,255,.34)!important;
    animation:chArcadeChampionMedallionMobileV3 2.2s cubic-bezier(.45,.05,.45,.95) infinite!important;
  }
  @keyframes chArcadeChampionMedallionMobileV3{
    0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1);filter:brightness(1)}
    48%{transform:translate3d(0,-2.5px,0) rotate(3deg) scale(1.09);filter:brightness(1.14)}
    64%{transform:translate3d(0,-1px,0) rotate(-1.2deg) scale(1.045);filter:brightness(1.08)}
  }

  /* Restore the approved clean mobile bubble. Only the sun/moon glyph grows.
     No jewel surface, no special orb, and no Skin-competing decorative layer. */
  body.ch-theme .ch-theme-mode-toggle,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mode-toggle{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0!important;
    justify-content:center!important;
    border-radius:999px!important;
    background:color-mix(in srgb,var(--ch-theme-surface) 92%,var(--ch-theme-blue) 8%)!important;
    border:1px solid color-mix(in srgb,var(--ch-theme-border) 76%,var(--ch-theme-blue) 24%)!important;
    color:var(--ch-theme-text)!important;
    box-shadow:0 8px 22px rgba(15,23,42,.055)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    transform:none!important;
  }
  body.ch-theme .ch-theme-mode-toggle:hover{
    background:color-mix(in srgb,var(--ch-theme-surface) 84%,var(--ch-theme-blue) 16%)!important;
    border-color:color-mix(in srgb,var(--ch-theme-blue) 52%,var(--ch-theme-border))!important;
  }
  body.ch-theme .ch-theme-mode-toggle-icon,
  html[data-ch-theme-mode="dark"] body.ch-theme .ch-theme-mode-toggle-icon{
    display:inline!important;
    width:auto!important;
    height:auto!important;
    border-radius:0!important;
    background:none!important;
    box-shadow:none!important;
    color:inherit!important;
    font-size:21px!important;
    line-height:1!important;
    transform:none!important;
    transition:transform .18s ease!important;
  }
  body.ch-theme .ch-theme-mode-toggle:active .ch-theme-mode-toggle-icon{
    transform:scale(.88)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before,
  .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{animation:none!important}
}


/* =========================================================
   v0.4.314 — Arcade Champion context parity + mobile account menu polish
   LOCKED GUARD: v0.4.313 mobile Light/Dark bubble/icon presentation is approved.
   Scope: Arcade Champion medallion proportions on Profile card and mobile
   account dropdown only. Global ring, aura, animation language remain unchanged.
   ========================================================= */

/* My Profile card: keep the approved ring/aura, but make the medallion itself
   more proportional and make the lightning mark legible inside the smaller disc. */
body.ch-theme .ch-profile-card .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
  width:27%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  right:-3%!important;
  top:-5%!important;
  font-size:10px!important;
  border-width:1px!important;
}

/* Header account dropdown: the same avatar HTML is reused in the toggle and
   panel head. Give the panel head its own explicit Skin geometry so the effect
   cannot inherit awkward dimensions from the larger dropdown shell. */
.ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar{
  width:40px!important;
  height:40px!important;
  flex:0 0 40px!important;
  overflow:visible!important;
}
.ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar .ch-theme-account-avatar{
  width:40px!important;
  height:40px!important;
  border-radius:50%!important;
  object-fit:cover!important;
}
.ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
  width:30%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  right:-4%!important;
  top:-7%!important;
  font-size:7px!important;
}

@media(max-width:782px){
  /* Mobile dropdown recovery: tighter shell and controlled aura footprint. */
  .ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar{
    width:36px!important;
    height:36px!important;
    flex:0 0 36px!important;
  }
  .ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar .ch-theme-account-avatar{
    width:36px!important;
    height:36px!important;
  }
  .ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
    inset:-2px!important;
    padding:1.8px!important;
    box-shadow:
      0 0 0 1px rgba(180,111,6,.62),
      0 0 5px rgba(255,205,43,.90),
      0 0 10px rgba(255,181,20,.66),
      0 0 17px rgba(38,199,255,.42),
      0 0 24px rgba(89,94,255,.26)!important;
  }
  .ch-theme-account-panel-head .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
    width:30%!important;
    right:-3%!important;
    top:-6%!important;
    font-size:7px!important;
    animation:chArcadeChampionMedallionMobileV3 2.2s cubic-bezier(.45,.05,.45,.95) infinite!important;
  }
}

/* =========================================================
   v0.4.315 — Arcade Champion profile medallion + mobile account-button parity
   LOCKED GUARDS: approved v0.4.311 Light Mode desktop/mobile presentation,
   approved v0.4.313 mobile Light/Dark button, and global Arcade Champion
   ring/aura language remain unchanged.
   Scope: My Profile hero medallion proportions + mobile header avatar button only.
   ========================================================= */

/* My Profile hero/card: smaller medallion shell, larger lightning glyph. */
body.ch-theme .ch-profile-card .ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::after{
  width:21%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  right:-1%!important;
  top:-3%!important;
  font-size:11.5px!important;
  font-weight:900!important;
  line-height:1!important;
  border-width:1px!important;
}

/* Mobile header avatar button: let the equipped Avatar Skin visually fill the
   existing 40px control. The avatar remains 36px; the 2px halo/ring reaches
   the control edge without changing the button's established geometry. */
@media(max-width:782px){
  .ch-theme-account-toggle .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar{
    width:36px!important;
    height:36px!important;
    flex:0 0 36px!important;
    margin:0!important;
  }
  .ch-theme-account-toggle .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar .ch-theme-account-avatar{
    width:36px!important;
    height:36px!important;
    margin:0!important;
    border-radius:50%!important;
    object-fit:cover!important;
  }
  .ch-theme-account-toggle .ch-theme-account-avatar-cosmetic.ch-cosmetic-effect-arcade-champion.ch-cosmetic-slot-avatar::before{
    inset:-2px!important;
  }
}
