/* DAFThub Community Meetups — front-end styles */

:root {
	--dhcm-navy: var(--global-palette1, #0b2a4a);
	--dhcm-orange: var(--global-palette2, #f36f21);
	--dhcm-bg: #f6f8fb;
	--dhcm-card-bg: #ffffff;
	--dhcm-border: #e5e7eb;
	--dhcm-text: #111827;
	--dhcm-muted: #374151;
	--dhcm-soft: #6b7280;
	--dhcm-success-bg: #ecfdf5;
	--dhcm-success-border: #34d399;
	--dhcm-error-bg: #fef2f2;
	--dhcm-error-border: #f87171;
}

.dhcm-page-bg {
	background: var(--dhcm-bg);
	padding: 24px 14px 76px;
}

.dhcm-wrap {
	max-width: 1120px;
	margin: 0 auto;
}

.dhcm-panel {
	background: var(--dhcm-card-bg);
	border: 1px solid var(--dhcm-border);
	border-radius: 28px;
	padding: 40px 38px;
	box-shadow: 0 12px 34px rgba(17, 24, 39, 0.07);
	margin: 0 0 32px;
}

.dhcm-panel:last-child {
	margin-bottom: 0;
}

.dhcm-panel--hero {
	background: linear-gradient(180deg, rgba(11,42,74,0.06) 0%, #ffffff 72%);
}

.dhcm-center {
	text-align: center;
}

.dhcm-hero-meta,
.dhcm-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 7px 12px;
	border-radius: 999px;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	background: rgba(243, 111, 33, 0.12);
	color: var(--dhcm-navy);
	border: 1px solid rgba(243, 111, 33, 0.26);
}

.dhcm-badge--muted {
	background: rgba(107, 114, 128, 0.10);
	border-color: rgba(107, 114, 128, 0.18);
	color: #4b5563;
}

.dhcm-muted {
	color: var(--dhcm-muted);
	font-size: 1.04rem;
	line-height: 1.7;
}

.dhcm-hero-highlight {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
	margin-top: 22px;
	padding: 16px;
	border: 1px solid var(--dhcm-border);
	border-radius: 18px;
	background: rgba(255,255,255,0.92);
	box-shadow: 0 10px 24px rgba(17,24,39,0.04);
}

.dhcm-hero-highlight strong {
	color: var(--dhcm-navy);
	display: block;
	margin-bottom: 4px;
}

.dhcm-hero-highlight__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.dhcm-tool-lock,
.dhcm-inline-note,
.dhcm-empty-state {
	border: 1px solid rgba(243,111,33,0.35);
	background: rgba(243,111,33,0.10);
	border-radius: 16px;
	padding: 16px 18px;
	line-height: 1.65;
}

.dhcm-empty-state {
	text-align: center;
	color: var(--dhcm-muted);
}

.dhcm-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}

.dhcm-button,
.dhcm-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none !important;
	border-radius: 12px;
	font-weight: 700;
	line-height: 1;
	transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.dhcm-button {
	padding: 13px 16px;
	border: 1px solid transparent;
	background: var(--dhcm-navy);
	color: #ffffff !important;
	box-shadow: 0 10px 22px rgba(11,42,74,0.13);
	cursor: pointer;
}

.dhcm-button:hover,
.dhcm-button:focus {
	transform: translateY(-1px);
	box-shadow: 0 12px 24px rgba(11,42,74,0.18);
}

.dhcm-button--ghost {
	background: #ffffff;
	color: var(--dhcm-navy) !important;
	border-color: rgba(11,42,74,0.14);
	box-shadow: none;
}

.dhcm-link {
	color: var(--dhcm-navy) !important;
	font-size: 0.95rem;
}

.dhcm-link:hover,
.dhcm-link:focus {
	opacity: 0.8;
}

.dhcm-filter-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 20px;
	padding: 14px 16px;
	border: 1px solid var(--dhcm-border);
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(11,42,74,0.04) 0%, #ffffff 72%);
}

.dhcm-filter-bar__group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 220px;
}

.dhcm-filter-bar__group label {
	font-weight: 700;
	color: var(--dhcm-text);
}

.dhcm-filter-bar__group select {
	padding: 12px 14px;
	border: 1px solid rgba(11,42,74,0.14);
	border-radius: 12px;
	background: #ffffff;
	color: var(--dhcm-text);
	min-width: 220px;
}

.dhcm-filter-bar__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.dhcm-view-toggle,
.dhcm-scope-toggle {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 20px;
}

.dhcm-view-button {
	background: #ffffff;
	color: var(--dhcm-navy) !important;
	border-color: rgba(11,42,74,0.14);
	box-shadow: none;
}

.dhcm-view-button.is-active,
.dhcm-scope-button.is-active {
	background: var(--dhcm-orange);
	color: #ffffff !important;
	border-color: transparent;
}

.dhcm-scope-button {
	padding: 11px 14px;
	border-radius: 12px;
	border: 1px solid rgba(11,42,74,0.14);
	background: #ffffff;
	color: var(--dhcm-navy);
	font-weight: 700;
	cursor: pointer;
}

.dhcm-view-panel {
	display: none;
}

.dhcm-view-panel.is-active,
.dhcm-scope-group.is-active {
	display: block;
}

.dhcm-scope-group {
	display: none;
}

.dhcm-calendar {
	border: 1px solid var(--dhcm-border);
	border-radius: 22px;
	overflow: hidden;
	background: #ffffff;
}

.dhcm-calendar__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 18px;
	border-bottom: 1px solid var(--dhcm-border);
}

.dhcm-calendar__header h3 {
	margin: 0;
	font-size: 1.1rem;
}

.dhcm-calendar__nav {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.dhcm-calendar__nav button {
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid rgba(11,42,74,0.14);
	background: #ffffff;
	color: var(--dhcm-navy);
	cursor: pointer;
	font-weight: 700;
}

.dhcm-calendar__weekdays,
.dhcm-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.dhcm-calendar__weekdays {
	background: rgba(11,42,74,0.04);
	border-bottom: 1px solid var(--dhcm-border);
}

.dhcm-calendar__weekday {
	padding: 10px 12px;
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--dhcm-soft);
	text-align: center;
}

.dhcm-calendar__day {
	min-height: 128px;
	padding: 10px;
	border-right: 1px solid var(--dhcm-border);
	border-bottom: 1px solid var(--dhcm-border);
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: #ffffff;
}

.dhcm-calendar__day:nth-child(7n) {
	border-right: 0;
}

.dhcm-calendar__day.is-other-month {
	background: #fafafa;
	color: #9ca3af;
}

.dhcm-calendar__day.is-other-month .dhcm-calendar__day-number {
	color: #6b7280;
}

.dhcm-calendar__day.is-other-month .dhcm-calendar__month-chip {
	background: rgba(107,114,128,0.12);
	color: #6b7280;
}

.dhcm-calendar__day.is-other-month .dhcm-calendar__event {
	background: rgba(107,114,128,0.10);
	color: #4b5563 !important;
}

.dhcm-calendar__day.is-today {
	background: linear-gradient(180deg, rgba(243,111,33,0.08), #ffffff 48%);
}

.dhcm-calendar__day.has-month-boundary {
	position: relative;
}

.dhcm-calendar__day.has-month-boundary::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(90deg, rgba(243,111,33,0.5), rgba(11,42,74,0.22));
}

.dhcm-calendar__day-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
}

.dhcm-calendar__month-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(11,42,74,0.08);
	color: var(--dhcm-navy);
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.dhcm-calendar__day-number {
	font-weight: 700;
	color: var(--dhcm-navy);
	font-size: 0.95rem;
	line-height: 1.1;
	margin-left: auto;
}

.dhcm-calendar__event-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.dhcm-calendar__event {
	display: block;
	padding: 7px 8px;
	border-radius: 10px;
	background: rgba(11,42,74,0.06);
	color: var(--dhcm-navy) !important;
	text-decoration: none !important;
	font-size: 0.84rem;
	font-weight: 700;
	line-height: 1.35;
}

.dhcm-calendar-list {
	margin-top: 18px;
}

.dhcm-calendar-month-list,
.dhcm-card-grid,
.dhcm-memory-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}

.dhcm-month-group {
	margin: 0 0 26px;
}

.dhcm-month-group:last-child {
	margin-bottom: 0;
}

.dhcm-month-group__title {
	margin: 0 0 14px;
	font-size: 1.15rem;
}

.dhcm-card {
	border: 1px solid var(--dhcm-border);
	border-radius: 18px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(17,24,39,0.06);
	display: flex;
	flex-direction: column;
}

.dhcm-card__image {
	display: block;
	aspect-ratio: 16 / 9;
	background: #eef2f7;
}

.dhcm-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dhcm-card__body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 100%;
}

.dhcm-card__topline {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.dhcm-card__day {
	font-weight: 800;
	color: var(--dhcm-orange);
	font-size: 1.05rem;
}

.dhcm-card__title {
	margin: 0;
	font-size: 1.18rem;
	line-height: 1.35;
}

.dhcm-card__title a {
	text-decoration: none !important;
	color: var(--dhcm-text);
}

.dhcm-card__meta,
.dhcm-card__location,
.dhcm-memory-card__byline {
	color: var(--dhcm-soft);
	font-size: 0.94rem;
	line-height: 1.55;
}

.dhcm-card__excerpt {
	margin: 0;
	color: var(--dhcm-muted);
	line-height: 1.65;
}

.dhcm-card__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.dhcm-card__stats--hero {
	margin-bottom: 12px;
}

.dhcm-stat-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 7px 11px;
	border-radius: 999px;
	font-size: 0.84rem;
	font-weight: 700;
	background: rgba(243,111,33,0.10);
	color: var(--dhcm-navy);
	border: 1px solid rgba(243,111,33,0.24);
}

.dhcm-stat-pill--soft {
	background: rgba(11,42,74,0.06);
	border-color: rgba(11,42,74,0.10);
}

.dhcm-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	margin-top: auto;
	padding-top: 4px;
}

.dhcm-event-hero {
	display: grid;
	grid-template-columns: 1.2fr 0.9fr;
	gap: 22px;
	align-items: stretch;
}

.dhcm-event-hero__content.is-full {
	grid-column: 1 / -1;
}

.dhcm-event-hero__content h1 {
	margin: 10px 0 12px;
}

.dhcm-event-hero__meta {
	color: var(--dhcm-soft);
	font-weight: 600;
	margin-bottom: 14px;
	line-height: 1.6;
}

.dhcm-event-hero__image {
	border-radius: 22px;
	overflow: hidden;
	min-height: 100%;
	border: 1px solid rgba(11,42,74,0.08);
	background: #eef2f7;
}

.dhcm-event-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dhcm-ticket-grid,
.dhcm-info-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-bottom: 22px;
}

.dhcm-info-card {
	border: 1px solid var(--dhcm-border);
	border-radius: 16px;
	padding: 16px;
	background: linear-gradient(180deg, rgba(11,42,74,0.04) 0%, #ffffff 72%);
}

.dhcm-info-card h3 {
	margin: 0 0 10px;
	font-size: 1rem;
}

.dhcm-info-card p {
	margin: 0 0 6px;
	line-height: 1.65;
}

.dhcm-info-card__small {
	color: var(--dhcm-soft);
	font-size: 0.92rem;
}

.dhcm-link-list {
	margin: 0;
	padding-left: 18px;
}

.dhcm-link-list li {
	margin: 0 0 8px;
}

.dhcm-link-list a {
	color: var(--dhcm-navy);
	text-decoration: underline;
}

.dhcm-rich-content {
	line-height: 1.8;
	color: var(--dhcm-text);
}

.dhcm-rich-content > *:first-child {
	margin-top: 0;
}

.dhcm-rich-content > *:last-child {
	margin-bottom: 0;
}

.dhcm-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 14px;
	margin-bottom: 18px;
}

.dhcm-section-head h2 {
	margin: 0 0 4px;
}

.dhcm-memory-card {
	border: 1px solid var(--dhcm-border);
	border-radius: 18px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 8px 18px rgba(17,24,39,0.05);
}

.dhcm-memory-card__image {
	display: block;
	aspect-ratio: 4 / 3;
	background: #eef2f7;
}

.dhcm-memory-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dhcm-memory-card__body {
	padding: 14px;
	line-height: 1.6;
}

.dhcm-memory-card__body p {
	margin: 0 0 8px;
}

.dhcm-registration-form {
	margin: 0;
}

.dhcm-registration-form .dhcm-button {
	appearance: none;
}

.dhcm-upload-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.dhcm-form-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.dhcm-form-group label {
	font-weight: 700;
	color: var(--dhcm-text);
}

.dhcm-form-group textarea,
.dhcm-form-group input[type="text"],
.dhcm-form-group input[type="file"],
.dhcm-form-group select {
	width: 100%;
}

.dhcm-form-group textarea,
.dhcm-form-group input[type="text"],
.dhcm-form-group select {
	padding: 12px 14px;
	border: 1px solid rgba(11,42,74,0.14);
	border-radius: 12px;
	background: #ffffff;
	color: var(--dhcm-text);
}

.dhcm-form-group input[type="file"] {
	padding: 12px 14px;
	border: 1px dashed rgba(11,42,74,0.18);
	border-radius: 12px;
	background: rgba(11,42,74,0.02);
}

.dhcm-form-group--checkbox,
.dhcm-upload-form .dhcm-button-row,
.dhcm-upload-form .description,
.dhcm-upload-form .dhcm-inline-note {
	grid-column: 1 / -1;
}

.dhcm-form-group--checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-weight: 600;
	line-height: 1.6;
}

.dhcm-flash {
	border-radius: 16px;
	padding: 14px 16px;
	margin: 0 0 22px;
	font-weight: 700;
}

.dhcm-flash--success {
	background: var(--dhcm-success-bg);
	border: 1px solid var(--dhcm-success-border);
	color: #065f46;
}

.dhcm-flash--error {
	background: var(--dhcm-error-bg);
	border: 1px solid var(--dhcm-error-border);
	color: #991b1b;
}

.dhcm-lightbox-open {
	overflow: hidden;
}

.dhcm-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
}

.dhcm-lightbox.is-active {
	display: block;
}

.dhcm-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(17,24,39,0.82);
}

.dhcm-lightbox__dialog {
	position: relative;
	z-index: 2;
	width: min(1080px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	margin: 16px auto;
	background: #0f172a;
	border-radius: 20px;
	box-shadow: 0 18px 50px rgba(0,0,0,0.28);
	overflow: hidden;
}

.dhcm-lightbox__media {
	background: #0b1220;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: min(72vh, 820px);
}

.dhcm-lightbox__media img {
	display: block;
	max-width: 100%;
	max-height: min(72vh, 820px);
	object-fit: contain;
}

.dhcm-lightbox__close,
.dhcm-lightbox__nav {
	position: absolute;
	z-index: 3;
	border: 0;
	border-radius: 999px;
	background: rgba(255,255,255,0.14);
	color: #ffffff;
	cursor: pointer;
	backdrop-filter: blur(4px);
}

.dhcm-lightbox__close {
	top: 14px;
	right: 14px;
	width: 42px;
	height: 42px;
	font-size: 1.6rem;
	line-height: 1;
}

.dhcm-lightbox__nav {
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	font-size: 2rem;
	line-height: 1;
}

.dhcm-lightbox__nav--prev {
	left: 14px;
}

.dhcm-lightbox__nav--next {
	right: 14px;
}

.dhcm-lightbox__nav[disabled] {
	opacity: 0.35;
	cursor: default;
}

.dhcm-lightbox__meta {
	padding: 16px 18px 18px;
	color: #e5e7eb;
	background: #111827;
}

.dhcm-lightbox__title {
	font-weight: 700;
	margin-bottom: 6px;
}

.dhcm-lightbox__caption {
	color: #cbd5e1;
	line-height: 1.6;
}

.dhcm-lightbox__counter {
	margin-top: 8px;
	font-size: 0.9rem;
	color: #94a3b8;
}

@media (max-width: 1024px) {
	.dhcm-panel {
		padding: 32px 24px;
	}

	.dhcm-event-hero {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.dhcm-page-bg {
		padding: 16px 10px 48px;
	}

	.dhcm-panel {
		padding: 24px 16px;
		border-radius: 20px;
		margin-bottom: 24px;
	}

	.dhcm-hero-highlight,
	.dhcm-ticket-grid,
	.dhcm-info-grid,
	.dhcm-upload-form,
	.dhcm-filter-bar {
		grid-template-columns: 1fr;
	}

	.dhcm-filter-bar {
		display: grid;
	}

	.dhcm-filter-bar__group select {
		min-width: 0;
	}

	.dhcm-calendar__day {
		min-height: 110px;
		padding: 8px;
	}

	.dhcm-calendar__weekday {
		padding: 8px 4px;
		font-size: 0.78rem;
	}

	.dhcm-calendar__day-head {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}

	.dhcm-calendar__day-number {
		margin-left: 0;
	}

	.dhcm-calendar__month-chip {
		font-size: 0.62rem;
		padding: 4px 6px;
	}

	.dhcm-card-grid,
	.dhcm-memory-grid,
	.dhcm-calendar-month-list {
		grid-template-columns: 1fr;
	}

	.dhcm-lightbox__dialog {
		width: calc(100vw - 16px);
		margin: 8px auto;
		max-height: calc(100vh - 16px);
	}

	.dhcm-lightbox__media {
		min-height: 56vh;
	}
}

/* --------------------------------------------------------------------------
 * v0.5.4 — DAFThub visual alignment for meetup pages.
 * Coded into the plugin stylesheet so this does not depend on global Customizer CSS.
 * -------------------------------------------------------------------------- */

.dhcm-page-bg {
	--dhcm-navy: #0a3da2;
	--dhcm-blue: #0a3da2;
	--dhcm-orange: #ff7a00;
	--dhcm-ink: #102a43;
	--dhcm-text: #425466;
	--dhcm-muted: #425466;
	--dhcm-soft: #5b6b80;
	--dhcm-bg: #eef3f9;
	--dhcm-card-bg: #ffffff;
	--dhcm-border: #dde5f2;
	--dhcm-card-border: #e3eaf5;

	background: var(--dhcm-bg);
	padding: 28px 14px 84px;
	max-width: 1290px;
	margin-left: auto;
	margin-right: auto;
	font-family: "Source Code Pro", "Source Code", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.dhcm-page-bg * {
	box-sizing: border-box;
}

.dhcm-wrap {
	max-width: 1080px;
	margin: 0 auto;
}

.dhcm-panel {
	background: #ffffff;
	border: 1px solid var(--dhcm-border);
	border-radius: 30px;
	padding: 46px 42px;
	box-shadow: 0 14px 34px rgba(10, 61, 162, 0.07);
	margin: 0 0 34px 0;
}

.dhcm-panel:last-child {
	margin-bottom: 0;
}

.dhcm-panel--hero {
	background: #ffffff;
}

.dhcm-panel h1,
.dhcm-panel h2,
.dhcm-panel h3 {
	color: var(--dhcm-ink);
	line-height: 1.16;
	letter-spacing: -0.02em;
	font-weight: 800;
}

.dhcm-panel h1,
.dhcm-panel h2,
.dhcm-panel h3,
.dhcm-panel p {
	margin-top: 0;
}

.dhcm-muted,
.dhcm-card__meta,
.dhcm-card__location,
.dhcm-card__excerpt,
.dhcm-event-hero__meta,
.dhcm-info-card__small,
.dhcm-memory-card__byline {
	color: var(--dhcm-text);
}

.dhcm-hero-meta,
.dhcm-badge,
.dhcm-calendar__month-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	max-width: max-content;
	padding: 7px 12px;
	border: 0;
	border-radius: 999px;
	background: rgba(10, 61, 162, 0.08);
	color: var(--dhcm-blue);
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
}

.dhcm-panel--hero .dhcm-hero-meta,
.dhcm-panel--hero .dhcm-badge {
	margin-bottom: 14px;
}

.dhcm-badge--muted {
	background: rgba(91, 107, 128, 0.10);
	color: #5b6b80;
	border: 0;
}

.dhcm-hero-highlight {
	border: 1px solid var(--dhcm-card-border);
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 10px 22px rgba(10, 61, 162, 0.04);
}

.dhcm-hero-highlight strong {
	color: var(--dhcm-blue);
}

.dhcm-card,
.dhcm-info-card,
.dhcm-filter-bar,
.dhcm-calendar,
.dhcm-calendar-month-list .dhcm-card,
.dhcm-memory-card {
	background: #ffffff;
	border: 1px solid var(--dhcm-card-border);
	border-radius: 18px;
	box-shadow: 0 10px 22px rgba(10, 61, 162, 0.04);
}

.dhcm-card,
.dhcm-info-card,
.dhcm-memory-card {
	position: relative;
	overflow: hidden;
}

.dhcm-card::before,
.dhcm-info-card::before,
.dhcm-memory-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 14px;
	right: 14px;
	display: block;
	height: 3px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--dhcm-orange), var(--dhcm-blue));
	opacity: 0.22;
	z-index: 1;
}

.dhcm-card__image,
.dhcm-memory-card__image,
.dhcm-event-hero__image {
	background: #eef3f9;
	border-color: var(--dhcm-card-border);
}

.dhcm-card__day {
	color: var(--dhcm-orange);
}

.dhcm-card__title a,
.dhcm-card__title,
.dhcm-info-card h3,
.dhcm-rich-content,
.dhcm-form-group label {
	color: var(--dhcm-ink);
}

.dhcm-stat-pill {
	background: rgba(10, 61, 162, 0.08);
	color: var(--dhcm-blue);
	border: 1px solid rgba(10, 61, 162, 0.14);
}

.dhcm-stat-pill--soft {
	background: rgba(10, 61, 162, 0.05);
	border-color: rgba(10, 61, 162, 0.10);
}

.dhcm-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 18px;
	border-radius: 12px;
	border: 1px solid var(--dhcm-blue);
	background: var(--dhcm-blue);
	color: #ffffff !important;
	text-decoration: none !important;
	font-weight: 700;
	line-height: 1.1;
	box-shadow: none;
	cursor: pointer;
}

.dhcm-button:hover,
.dhcm-button:focus {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(10, 61, 162, 0.12);
}

.dhcm-panel--hero .dhcm-button-row .dhcm-button:first-child,
.dhcm-hero-highlight__actions .dhcm-button,
.dhcm-event-hero .dhcm-button-row .dhcm-button:first-child:not(.dhcm-button--ghost),
.dhcm-registration-form .dhcm-button,
.dhcm-upload-form .dhcm-button {
	background: var(--dhcm-orange);
	border-color: var(--dhcm-orange);
	color: #ffffff !important;
}

.dhcm-button--ghost,
.dhcm-button--outline,
.dhcm-view-button,
.dhcm-scope-button {
	background: #ffffff;
	color: var(--dhcm-blue) !important;
	border-color: var(--dhcm-blue);
	box-shadow: none;
}

.dhcm-view-button.is-active,
.dhcm-scope-button.is-active {
	background: var(--dhcm-blue);
	color: #ffffff !important;
	border-color: var(--dhcm-blue);
}

.dhcm-link {
	color: var(--dhcm-blue) !important;
}

.dhcm-filter-bar {
	background: #ffffff;
	padding: 16px;
	margin-bottom: 22px;
}

.dhcm-filter-bar__group label {
	color: var(--dhcm-ink);
}

.dhcm-filter-bar__group select,
.dhcm-form-group textarea,
.dhcm-form-group input[type="text"],
.dhcm-form-group input[type="file"],
.dhcm-form-group select {
	border: 1px solid var(--dhcm-card-border);
	border-radius: 12px;
	background: #ffffff;
	color: var(--dhcm-ink);
}

.dhcm-form-group input[type="file"] {
	border-style: dashed;
	background: rgba(10, 61, 162, 0.02);
}

.dhcm-calendar {
	background: #ffffff;
	border-color: var(--dhcm-border);
}

.dhcm-calendar__header {
	border-bottom-color: var(--dhcm-border);
}

.dhcm-calendar__header h3 {
	color: var(--dhcm-ink);
	font-weight: 800;
}

.dhcm-calendar__nav button {
	border: 1px solid var(--dhcm-blue);
	background: #ffffff;
	color: var(--dhcm-blue);
	border-radius: 12px;
}

.dhcm-calendar__nav button:hover,
.dhcm-calendar__nav button:focus {
	background: var(--dhcm-blue);
	color: #ffffff;
}

.dhcm-calendar__weekdays {
	background: rgba(10, 61, 162, 0.04);
	border-bottom-color: var(--dhcm-border);
}

.dhcm-calendar__weekday {
	color: #5b6b80;
}

.dhcm-calendar__day {
	border-color: var(--dhcm-card-border);
	background: #ffffff;
}

.dhcm-calendar__day.is-other-month {
	background: #f8fbff;
	color: #5b6b80;
}

.dhcm-calendar__day.is-other-month .dhcm-calendar__day-number,
.dhcm-calendar__day.is-other-month .dhcm-calendar__event {
	opacity: 0.55;
}

.dhcm-calendar__day.is-other-month .dhcm-calendar__month-chip {
	background: rgba(91, 107, 128, 0.10);
	color: #5b6b80;
}

.dhcm-calendar__day.is-today {
	background: linear-gradient(180deg, rgba(255, 122, 0, 0.08), #ffffff 48%);
}

.dhcm-calendar__day.has-month-boundary::before {
	background: linear-gradient(90deg, rgba(255, 122, 0, 0.55), rgba(10, 61, 162, 0.25));
}

.dhcm-calendar__day-number {
	color: var(--dhcm-blue);
}

.dhcm-calendar__month-chip {
	padding: 5px 9px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.dhcm-calendar__event {
	background: rgba(10, 61, 162, 0.08);
	color: var(--dhcm-blue) !important;
	border: 1px solid rgba(10, 61, 162, 0.14);
	border-radius: 10px;
}

.dhcm-tool-lock,
.dhcm-inline-note,
.dhcm-empty-state {
	border: 1px solid rgba(255, 122, 0, 0.28);
	background: rgba(255, 122, 0, 0.08);
	border-radius: 16px;
	color: #5b3c1a;
}

.dhcm-flash--success {
	border-color: #34d399;
	background: #ecfdf5;
	color: #065f46;
}

.dhcm-flash--error {
	border-color: #f87171;
	background: #fef2f2;
	color: #991b1b;
}

.dhcm-event-hero__image {
	border-radius: 22px;
}

.dhcm-lightbox__dialog {
	border-radius: 20px;
}

@media (max-width: 1024px) {
	.dhcm-panel {
		padding: 36px 28px;
	}
}

@media (max-width: 780px) {
	.dhcm-hero-highlight {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.dhcm-page-bg {
		padding: 18px 10px 52px;
	}

	.dhcm-wrap {
		max-width: 100%;
	}

	.dhcm-panel {
		padding: 26px 18px;
		border-radius: 22px;
		margin-bottom: 24px;
	}

	.dhcm-button,
	.dhcm-view-button,
	.dhcm-scope-button {
		width: 100%;
	}
}

/* v0.5.6 — QR ticket and mobile check-in UI */
.dhcm-checkin-wrap {
	max-width: 820px;
}

.dhcm-checkin-panel {
	text-align: left;
}

.dhcm-checkin-status {
	border-radius: 18px;
	padding: 18px 20px;
	margin: 0 0 20px;
	border: 1px solid var(--dhcm-border, #dde5f2);
	background: #ffffff;
}

.dhcm-checkin-status h2 {
	margin: 0 0 8px;
}

.dhcm-checkin-status p {
	margin: 0;
}

.dhcm-checkin-status--success {
	border-color: #34d399;
	background: #ecfdf5;
	color: #065f46;
}

.dhcm-checkin-status--warning {
	border-color: rgba(255, 122, 0, 0.36);
	background: rgba(255, 122, 0, 0.10);
	color: #5b3c1a;
}

.dhcm-checkin-status--error {
	border-color: #f87171;
	background: #fef2f2;
	color: #991b1b;
}

.dhcm-checkin-ticket-card,
.dhcm-ticket-card {
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 18px;
	background: #ffffff;
	padding: 18px;
	box-shadow: 0 10px 22px rgba(10, 61, 162, 0.04);
}

.dhcm-checkin-table {
	width: 100%;
	border-collapse: collapse;
	margin: 18px 0;
}

.dhcm-checkin-table th,
.dhcm-checkin-table td {
	padding: 12px 10px;
	border-bottom: 1px solid var(--dhcm-card-border, #e3eaf5);
	vertical-align: top;
	text-align: left;
}

.dhcm-checkin-table th {
	width: 34%;
	color: var(--dhcm-ink, #102a43);
}

.dhcm-checkin-form {
	margin-top: 20px;
}

.dhcm-checkin-button {
	width: 100%;
	font-size: 1.08rem;
}

.dhcm-ticket-qr {
	display: block;
	width: min(100%, 260px);
	height: auto;
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 16px;
	padding: 10px;
	background: #ffffff;
	margin: 14px auto;
}

@media (max-width: 600px) {
	.dhcm-checkin-table th,
	.dhcm-checkin-table td {
		display: block;
		width: 100%;
		padding: 9px 0;
	}

	.dhcm-checkin-table th {
		border-bottom: 0;
		padding-bottom: 2px;
	}
}

/* v0.5.6 — QR tickets and mobile check-in */
.dhcm-checkin-page .dhcm-panel,
.dhcm-my-tickets-page .dhcm-panel {
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
}

.dhcm-checkin-card--valid {
	border-color: rgba(52, 211, 153, 0.55);
}

.dhcm-checkin-card--warning {
	border-color: rgba(255, 122, 0, 0.45);
	background: linear-gradient(180deg, rgba(255, 122, 0, 0.08), #ffffff 62%);
}

.dhcm-checkin-card--invalid {
	border-color: rgba(248, 113, 113, 0.55);
	background: linear-gradient(180deg, rgba(248, 113, 113, 0.08), #ffffff 62%);
}

.dhcm-ticket-card__qr,
.dhcm-ticket-qr {
	max-width: 240px;
	width: 100%;
	height: auto;
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 16px;
	padding: 10px;
	background: #ffffff;
	display: block;
	margin: 0 0 18px;
}

.dhcm-checkin-actions,
.dhcm-ticket-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-top: 18px;
}

.dhcm-checkin-table {
	width: 100%;
	border-collapse: collapse;
	margin: 18px 0 0;
}

.dhcm-checkin-table th,
.dhcm-checkin-table td {
	border-bottom: 1px solid var(--dhcm-card-border, #e3eaf5);
	padding: 10px 0;
	text-align: left;
	vertical-align: top;
}

.dhcm-checkin-table th {
	width: 36%;
	color: var(--dhcm-ink, #102a43);
}

@media (max-width: 600px) {
	.dhcm-checkin-actions .dhcm-button,
	.dhcm-ticket-actions .dhcm-button {
		width: 100%;
	}

	.dhcm-checkin-table th,
	.dhcm-checkin-table td {
		display: block;
		width: 100%;
	}

	.dhcm-checkin-table th {
		border-bottom: 0;
		padding-bottom: 2px;
	}
}

.dhcm-checkin-status {
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 16px;
	padding: 16px 18px;
	margin: 0 0 18px;
	background: #ffffff;
}

.dhcm-checkin-status--success {
	border-color: rgba(52, 211, 153, 0.55);
	background: #ecfdf5;
	color: #065f46;
}

.dhcm-checkin-status--warning {
	border-color: rgba(255, 122, 0, 0.35);
	background: rgba(255, 122, 0, 0.08);
	color: #5b3c1a;
}

.dhcm-checkin-status--error {
	border-color: rgba(248, 113, 113, 0.55);
	background: #fef2f2;
	color: #991b1b;
}

.dhcm-checkin-status h2 {
	margin-top: 0;
}

.dhcm-checkin-status p:last-child {
	margin-bottom: 0;
}

/* v0.5.7 — registration/action spacing polish */
.dhcm-registration-panel .dhcm-inline-note + .dhcm-button-row,
.dhcm-panel .dhcm-inline-note + .dhcm-button-row {
	margin-top: 18px;
}

.dhcm-checkin-status + .dhcm-checkin-ticket-card,
.dhcm-checkin-status + .dhcm-checkin-table {
	margin-top: 18px;
}

/* --------------------------------------------------------------------------
 * v0.5.9 — Meetup Moments lightbox controls + upload crop preview.
 * -------------------------------------------------------------------------- */

.dhcm-lightbox__close,
.dhcm-lightbox__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	text-align: center;
	appearance: none;
}

.dhcm-lightbox__icon {
	display: block;
	width: 22px;
	height: 22px;
	line-height: 1;
	pointer-events: none;
}

.dhcm-lightbox__nav .dhcm-lightbox__icon {
	width: 25px;
	height: 25px;
}

.dhcm-upload-guidance {
	font-weight: 700;
	color: var(--dhcm-blue, var(--dhcm-navy));
}

.dhcm-cropper {
	grid-column: 1 / -1;
	border: 1px solid rgba(10, 61, 162, 0.14);
	border-radius: 18px;
	padding: 16px;
	background: linear-gradient(180deg, rgba(10, 61, 162, 0.04) 0%, #ffffff 72%);
}

.dhcm-cropper__intro {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-bottom: 12px;
	color: var(--dhcm-muted);
	line-height: 1.55;
}

.dhcm-cropper__intro strong {
	color: var(--dhcm-blue, var(--dhcm-navy));
}

.dhcm-cropper__status {
	margin: 0 0 12px;
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--dhcm-blue, var(--dhcm-navy));
}

.dhcm-cropper__status:empty {
	display: none;
}

.dhcm-cropper__status.is-warning {
	color: #991b1b;
}

.dhcm-cropper__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
}

.dhcm-cropper.is-empty .dhcm-cropper__list {
	display: none;
}

.dhcm-crop-card {
	border: 1px solid var(--dhcm-border);
	border-radius: 16px;
	padding: 12px;
	background: #ffffff;
	box-shadow: 0 8px 18px rgba(17, 24, 39, 0.05);
}

.dhcm-crop-card__title {
	font-size: 0.92rem;
	font-weight: 800;
	color: var(--dhcm-blue, var(--dhcm-navy));
	line-height: 1.35;
	margin-bottom: 9px;
	overflow-wrap: anywhere;
}

.dhcm-crop-card__canvas-wrap {
	aspect-ratio: 4 / 3;
	border: 1px dashed rgba(10, 61, 162, 0.22);
	border-radius: 14px;
	overflow: hidden;
	background: #eef2f7;
	cursor: grab;
}

.dhcm-crop-card__canvas-wrap.is-dragging {
	cursor: grabbing;
}

.dhcm-crop-card canvas {
	display: block;
	width: 100%;
	height: 100%;
	touch-action: none;
}

.dhcm-crop-card__hint {
	margin-top: 8px;
	font-size: 0.84rem;
	line-height: 1.45;
	color: var(--dhcm-soft);
}

.dhcm-crop-card__controls {
	display: grid;
	gap: 10px;
	margin-top: 10px;
}

.dhcm-crop-card__zoom {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.9rem;
	font-weight: 800;
	color: var(--dhcm-blue, var(--dhcm-navy));
}

.dhcm-crop-card__zoom input[type="range"] {
	flex: 1;
	min-width: 0;
}

.dhcm-crop-card__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.dhcm-crop-card__buttons button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(10, 61, 162, 0.14);
	border-radius: 999px;
	padding: 8px 10px;
	background: #ffffff;
	color: var(--dhcm-blue, var(--dhcm-navy));
	font-size: 0.82rem;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
}

.dhcm-crop-card__buttons button:hover,
.dhcm-crop-card__buttons button:focus {
	border-color: rgba(255, 122, 0, 0.45);
	box-shadow: 0 8px 16px rgba(17, 24, 39, 0.08);
}

@media (max-width: 600px) {
	.dhcm-cropper {
		padding: 12px;
	}

	.dhcm-cropper__list {
		grid-template-columns: 1fr;
	}
}

/* v0.6.0 — Moneybird payment handoff and auto-return status page. */
.dhcm-payment-status {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

.dhcm-payment-status__card {
	margin-top: 24px;
	border: 1px solid var(--dhcm-border);
	border-radius: 20px;
	padding: 20px;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(17, 24, 39, 0.06);
}

.dhcm-payment-status__state {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border-radius: 16px;
	border: 1px solid rgba(243, 111, 33, 0.28);
	background: rgba(243, 111, 33, 0.09);
	color: var(--dhcm-navy);
}

.dhcm-payment-status__state.is-confirmed {
	border-color: var(--dhcm-success-border);
	background: var(--dhcm-success-bg);
}

.dhcm-payment-status__spinner {
	width: 18px;
	height: 18px;
	border-radius: 999px;
	border: 3px solid rgba(11, 42, 74, 0.18);
	border-top-color: var(--dhcm-navy);
	animation: dhcm-payment-spin 0.9s linear infinite;
	flex: 0 0 auto;
}

.dhcm-payment-status__state.is-confirmed .dhcm-payment-status__spinner {
	animation: none;
	border-color: var(--dhcm-success-border);
	background: var(--dhcm-success-border);
	box-shadow: inset 0 0 0 4px var(--dhcm-success-bg);
}

@keyframes dhcm-payment-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 600px) {
	.dhcm-payment-status__card {
		padding: 16px;
	}

	.dhcm-payment-status__state {
		align-items: flex-start;
	}
}


/* --------------------------------------------------------------------------
 * v0.6.1 — Mobile calendar readability: prevent vertical event-title wrapping.
 * -------------------------------------------------------------------------- */

.dhcm-calendar__day,
.dhcm-calendar__event-list,
.dhcm-calendar__event {
	min-width: 0;
}

.dhcm-calendar__event {
	max-width: 100%;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

@media (max-width: 900px) {
	.dhcm-calendar__event {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

@media (max-width: 700px) {
	.dhcm-calendar {
		border-radius: 16px;
	}

	.dhcm-calendar__header {
		padding: 12px;
	}

	.dhcm-calendar__header h3 {
		font-size: 1rem;
	}

	.dhcm-calendar__nav button {
		padding: 8px 10px;
	}

	.dhcm-calendar__weekday {
		padding: 7px 2px;
		font-size: 0.68rem;
	}

	.dhcm-calendar__day {
		min-height: 68px;
		padding: 6px 4px;
		gap: 4px;
		overflow: hidden;
	}

	.dhcm-calendar__day-head {
		flex-direction: row;
		align-items: center;
		gap: 3px;
	}

	.dhcm-calendar__day-number {
		font-size: 0.82rem;
		margin-left: auto;
	}

	.dhcm-calendar__month-chip {
		max-width: calc(100% - 20px);
		padding: 2px 4px;
		font-size: 0.52rem;
		letter-spacing: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.dhcm-calendar__event-list {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 3px;
		min-height: 10px;
	}

	.dhcm-calendar__event,
	.dhcm-calendar__day.is-other-month .dhcm-calendar__event {
		display: inline-block;
		width: 9px;
		height: 9px;
		min-width: 9px;
		max-width: 9px;
		padding: 0;
		border-radius: 999px;
		font-size: 0;
		line-height: 0;
		text-indent: -9999px;
		white-space: nowrap;
		overflow: hidden;
	}

	.dhcm-calendar__event-list .dhcm-calendar__event:nth-child(n+4) {
		display: none;
	}
}



/* v0.6.2 calendar accessibility/compact marker defaults. */
.dhcm-calendar__month-chip-short,
.dhcm-calendar__event-marker {
	display: none;
}

/* v0.6.2 mobile calendar markers + Moneybird diagnostics */
.dhcm-calendar__month-chip-letter,
.dhcm-calendar__event-compact {
	display: none;
}

.dhcm-calendar__day.has-events {
	box-shadow: inset 0 -3px 0 rgba(243,111,33,0.28);
}

.dhcm-calendar__day.has-multiple-events {
	box-shadow: inset 0 -3px 0 rgba(243,111,33,0.38), inset 0 -6px 0 rgba(11,42,74,0.10);
}

.dhcm-payment-access-code {
	border: 1px solid rgba(11,42,74,0.12);
	background: rgba(11,42,74,0.04);
	border-radius: 12px;
	padding: 10px 12px;
}

.dhcm-admin-diagnostics,
.dhcm-payment-status__debug {
	margin: 14px 0;
	text-align: left;
}

.dhcm-admin-diagnostics ul,
.dhcm-payment-status__debug ul {
	margin: 8px 0 0;
	padding-left: 18px;
}

@media (max-width: 700px) {
	.dhcm-calendar__day {
		min-height: 76px;
		padding: 6px 4px;
		gap: 4px;
		overflow: hidden;
	}

	.dhcm-calendar__day-head {
		align-items: center;
		gap: 3px;
		min-width: 0;
	}

	.dhcm-calendar__month-chip {
		width: 17px;
		height: 17px;
		min-width: 17px;
		max-width: 17px;
		padding: 0;
		align-items: center;
		justify-content: center;
		font-size: 0.68rem;
		letter-spacing: 0;
		line-height: 1;
		overflow: hidden;
	}

	.dhcm-calendar__month-chip-short {
		display: none;
	}

	.dhcm-calendar__month-chip-letter {
		display: inline;
	}

	.dhcm-calendar__event-list {
		display: flex;
		flex-direction: column;
		gap: 3px;
		min-height: 20px;
		width: 100%;
	}

	.dhcm-calendar__event,
	.dhcm-calendar__day.is-other-month .dhcm-calendar__event {
		display: inline-flex;
		width: 100%;
		height: auto;
		min-width: 0;
		max-width: 100%;
		padding: 3px 4px;
		border-radius: 999px;
		font-size: 0.56rem;
		line-height: 1;
		text-indent: 0;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		align-items: center;
		justify-content: center;
		background: rgba(243,111,33,0.14);
		border: 1px solid rgba(243,111,33,0.28);
		color: var(--dhcm-navy) !important;
	}

	.dhcm-calendar__event-full {
		display: none;
	}

	.dhcm-calendar__event-compact {
		display: inline;
		font-weight: 800;
	}

	.dhcm-calendar__event-list .dhcm-calendar__event:nth-child(n+3) {
		display: none;
	}
}

/* v0.6.2 mobile calendar fixes: compact month initials + visible meetup markers. */
@media (max-width: 700px) {
	.dhcm-calendar__day.has-events {
		background: linear-gradient(180deg, rgba(255, 122, 0, 0.08), #ffffff 62%);
	}

	.dhcm-calendar__month-chip {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 1.35rem;
		height: 1.35rem;
		max-width: 1.35rem;
		min-width: 1.35rem;
		padding: 0;
		font-size: 0.66rem;
		font-weight: 900;
		line-height: 1;
		letter-spacing: 0;
		text-transform: uppercase;
		overflow: visible;
		text-overflow: clip;
		white-space: nowrap;
	}

	.dhcm-calendar__month-chip-full {
		display: none;
	}

	.dhcm-calendar__month-chip-short {
		display: inline;
	}

	.dhcm-calendar__event-list {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 4px;
		min-height: 24px;
	}

	.dhcm-calendar__event,
	.dhcm-calendar__day.is-other-month .dhcm-calendar__event {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		min-width: 24px;
		max-width: 24px;
		padding: 0;
		border-radius: 999px;
		background: var(--dhcm-orange);
		border: 1px solid rgba(255, 122, 0, 0.55);
		color: #ffffff !important;
		font-size: 0;
		line-height: 1;
		text-indent: 0;
		white-space: nowrap;
		overflow: hidden;
		box-shadow: 0 6px 12px rgba(17, 24, 39, 0.12);
		opacity: 1;
	}

	.dhcm-calendar__day.is-other-month .dhcm-calendar__event {
		opacity: 0.74;
	}

	.dhcm-calendar__event-text {
		display: none;
	}

	.dhcm-calendar__event-marker {
		display: inline;
		font-size: 0.72rem;
		font-weight: 900;
		line-height: 1;
		color: inherit;
	}

	.dhcm-calendar__event-list .dhcm-calendar__event:nth-child(n+4) {
		display: none;
	}
}

/* v0.6.8 — optional flyer/menu materials on single meetup pages */
.dhcm-event-materials {
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--dhcm-border);
}

.dhcm-section-head--compact {
	margin-bottom: 14px;
}

.dhcm-event-materials .dhcm-muted {
	margin: 0;
}

.dhcm-material-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 320px));
	justify-content: start;
	align-items: start;
	gap: 16px;
}

.dhcm-material-card {
	border: 1px solid var(--dhcm-border);
	border-radius: 18px;
	background: #ffffff;
	overflow: hidden;
	box-shadow: 0 10px 22px rgba(17,24,39,0.05);
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 320px;
}

.dhcm-material-card__preview {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	aspect-ratio: 16 / 10;
	max-height: 200px;
	background: linear-gradient(180deg, rgba(11,42,74,0.05), rgba(243,111,33,0.06));
	border-bottom: 1px solid var(--dhcm-border);
	padding: 10px;
	text-decoration: none !important;
	color: var(--dhcm-navy) !important;
}

.dhcm-material-card__preview img {
	width: 100%;
	height: 100%;
	max-height: 180px;
	object-fit: contain;
	display: block;
	border-radius: 12px;
	background: #ffffff;
}

.dhcm-material-card__file-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 76px;
	min-height: 52px;
	padding: 12px 14px;
	border-radius: 14px;
	background: rgba(11,42,74,0.10);
	color: var(--dhcm-navy);
	font-weight: 900;
	letter-spacing: 0.04em;
}

.dhcm-material-card__filename {
	margin-top: 8px;
	font-size: 0.9rem;
	color: var(--dhcm-muted);
	max-width: 100%;
	overflow-wrap: anywhere;
	text-align: center;
}

.dhcm-material-card__body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
	line-height: 1.65;
}

.dhcm-material-card__body h3 {
	margin: 0;
	font-size: 1.05rem;
}

.dhcm-material-card__note {
	font-size: 0.98rem;
	line-height: 1.65;
}

.dhcm-material-card__note p {
	margin: 0 0 8px;
}

.dhcm-material-card__note p:last-child {
	margin-bottom: 0;
}

@media (max-width: 600px) {
	.dhcm-material-grid {
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
	}

	.dhcm-material-card {
		max-width: 320px;
	}

	.dhcm-material-card__preview {
		max-height: 200px;
	}
}

/* v0.6.9 — single meetup hero image/video media */
.dhcm-event-hero__media {
	position: relative;
	min-height: 270px;
	box-shadow: 0 10px 24px rgba(17,24,39,0.06);
}

button.dhcm-event-hero__media {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	padding: 0;
	border: 1px solid rgba(11,42,74,0.08);
	background: #eef2f7;
	cursor: pointer;
	text-align: left;
	box-shadow: 0 10px 24px rgba(17,24,39,0.06);
}

.dhcm-event-hero__media img,
.dhcm-event-hero__media video {
	width: 100%;
	height: 100%;
	min-height: 270px;
	object-fit: cover;
	display: block;
}

.dhcm-event-hero__media--video::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(11,42,74,0.04), rgba(11,42,74,0.28));
	pointer-events: none;
}

.dhcm-event-hero__play {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 999px;
	background: rgba(255,255,255,0.93);
	color: var(--dhcm-navy);
	box-shadow: 0 16px 32px rgba(17,24,39,0.24);
	transform: translate(-50%, -50%);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.dhcm-event-hero__play svg {
	width: 36px;
	height: 36px;
	margin-left: 4px;
}

button.dhcm-event-hero__media:hover .dhcm-event-hero__play,
button.dhcm-event-hero__media:focus .dhcm-event-hero__play {
	background: #ffffff;
	box-shadow: 0 18px 36px rgba(17,24,39,0.30);
	transform: translate(-50%, -50%) scale(1.04);
}

button.dhcm-event-hero__media:focus-visible {
	outline: 3px solid rgba(243,111,33,0.45);
	outline-offset: 4px;
}

.dhcm-video-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.dhcm-video-lightbox.is-active {
	display: flex;
}

.dhcm-video-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15,23,42,0.84);
	backdrop-filter: blur(2px);
}

.dhcm-video-lightbox__dialog {
	position: relative;
	width: min(980px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	border-radius: 24px;
	background: #0f172a;
	color: #ffffff;
	box-shadow: 0 24px 70px rgba(0,0,0,0.38);
	overflow: hidden;
}

.dhcm-video-lightbox__close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 999px;
	background: rgba(15,23,42,0.74);
	color: #ffffff;
	cursor: pointer;
}

.dhcm-video-lightbox__close:hover,
.dhcm-video-lightbox__close:focus {
	background: rgba(15,23,42,0.94);
}

.dhcm-video-lightbox__media {
	padding: 18px 18px 0;
	background: #0f172a;
}

.dhcm-video-lightbox__media video {
	width: 100%;
	max-height: calc(100vh - 170px);
	display: block;
	border-radius: 16px;
	background: #000000;
}

.dhcm-video-lightbox__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 18px 18px;
	color: #e5e7eb;
}

.dhcm-video-lightbox__title {
	font-weight: 800;
	line-height: 1.35;
}

.dhcm-video-lightbox__fallback {
	color: #ffffff !important;
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: underline;
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.dhcm-event-hero__media,
	.dhcm-event-hero__media img,
	.dhcm-event-hero__media video {
		min-height: 300px;
	}
}

@media (max-width: 600px) {
	.dhcm-event-hero__media,
	.dhcm-event-hero__media img,
	.dhcm-event-hero__media video {
		min-height: 220px;
	}

	.dhcm-event-hero__play {
		width: 58px;
		height: 58px;
	}

	.dhcm-event-hero__play svg {
		width: 30px;
		height: 30px;
	}

	.dhcm-video-lightbox {
		padding: 12px;
	}

	.dhcm-video-lightbox__dialog {
		width: calc(100vw - 24px);
		border-radius: 18px;
	}

	.dhcm-video-lightbox__media {
		padding: 12px 12px 0;
	}

	.dhcm-video-lightbox__media video {
		max-height: calc(100vh - 140px);
		border-radius: 12px;
	}

	.dhcm-video-lightbox__meta {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
		padding: 12px;
	}

	.dhcm-video-lightbox__fallback {
		white-space: normal;
	}
}

.dhcm-ticket-quantity {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 12px;
}

.dhcm-ticket-quantity label {
	font-weight: 700;
	color: var(--dhcm-text);
}

.dhcm-ticket-quantity input[type="number"] {
	width: 88px;
	padding: 10px 12px;
	border: 1px solid var(--dhcm-border);
	border-radius: 12px;
	background: #ffffff;
	color: var(--dhcm-text);
}

.dhcm-ticket-quantity span {
	color: var(--dhcm-soft);
	font-size: 0.92rem;
}

/* v0.6.15 — Staff walk-in ticket sales */
.dhcm-checkin-dashboard {
	display: grid;
	gap: 22px;
}

.dhcm-walkin-card {
	padding: 24px;
}

.dhcm-walkin-form {
	display: grid;
	gap: 16px;
	margin-top: 18px;
}

.dhcm-walkin-form label {
	display: grid;
	gap: 7px;
	font-weight: 700;
	color: var(--dhcm-ink, #102a43);
}

.dhcm-walkin-form input,
.dhcm-walkin-form select {
	width: 100%;
	min-height: 46px;
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 12px;
	padding: 10px 12px;
	background: #ffffff;
	color: var(--dhcm-ink, #102a43);
	font: inherit;
}

.dhcm-walkin-payment-qr {
	margin: 18px 0;
	padding: 18px;
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 18px;
	background: #ffffff;
	text-align: center;
	box-shadow: 0 10px 22px rgba(10, 61, 162, 0.04);
}

.dhcm-walkin-payment-qr img {
	display: block;
	width: min(100%, 260px);
	height: auto;
	margin: 0 auto 12px;
	border: 1px solid var(--dhcm-border, #dde5f2);
	border-radius: 14px;
	padding: 10px;
	background: #ffffff;
}

.dhcm-walkin-payment-qr p {
	margin: 0;
	color: var(--dhcm-text, #425466);
	font-size: 0.96rem;
	line-height: 1.55;
}

/* v0.6.25 — meetup email list signup */
.dhcm-newsletter-card {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
	gap: 22px;
	align-items: center;
	margin-top: 28px;
	padding: 22px;
	border: 1px solid #e3eaf5;
	border-radius: 22px;
	background: #ffffff;
	box-shadow: 0 10px 22px rgba(10, 61, 162, 0.04);
}

.dhcm-newsletter-card--standalone {
	margin-top: 0;
}

.dhcm-newsletter-card h2 {
	margin: 0 0 10px;
}

.dhcm-newsletter-card__small {
	margin: 10px 0 0;
	font-size: 0.88rem;
	line-height: 1.55;
	color: #5b6b80;
}

.dhcm-newsletter-form {
	display: grid;
	gap: 12px;
}

.dhcm-newsletter-form label {
	display: grid;
	gap: 6px;
	font-weight: 700;
	color: #102a43;
}

.dhcm-newsletter-form input[type="text"],
.dhcm-newsletter-form input[type="email"] {
	width: 100%;
	min-height: 46px;
	border: 1px solid #e3eaf5;
	border-radius: 12px;
	padding: 10px 12px;
	background: #ffffff;
	color: #102a43;
	font: inherit;
}

.dhcm-newsletter-form .dhcm-button {
	justify-self: start;
	background: #ff7a00;
	border-color: #ff7a00;
}

.dhcm-newsletter-optin {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	max-width: 620px;
	margin: 4px 0 12px;
	font-size: 0.92rem;
	line-height: 1.45;
	color: #425466;
}

.dhcm-newsletter-optin input[type="checkbox"] {
	margin-top: 0.2em;
}

.dhcm-panel--newsletter .dhcm-newsletter-card {
	margin-top: 0;
}

@media (max-width: 780px) {
	.dhcm-newsletter-card {
		grid-template-columns: 1fr;
		padding: 18px;
	}

	.dhcm-newsletter-form .dhcm-button {
		justify-self: stretch;
	}
}

/* --------------------------------------------------------------------------
 * v0.6.29 — Meetup Moments video uploads.
 * -------------------------------------------------------------------------- */
.dhcm-memory-card__image--video {
	position: relative;
	overflow: hidden;
	cursor: pointer;
	color: #ffffff !important;
}

.dhcm-memory-card__image--video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	background: #0f172a;
}

.dhcm-memory-card__image--video::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15,23,42,0.08), rgba(15,23,42,0.34));
	pointer-events: none;
}

.dhcm-memory-card__play {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border-radius: 999px;
	background: rgba(255,255,255,0.94);
	color: var(--dhcm-orange, #ff7a00);
	box-shadow: 0 14px 30px rgba(15,23,42,0.28);
	transform: translate(-50%, -50%);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
	pointer-events: none;
}

.dhcm-memory-card__play svg {
	width: 28px;
	height: 28px;
	margin-left: 3px;
}

.dhcm-memory-card__image--video:hover .dhcm-memory-card__play,
.dhcm-memory-card__image--video:focus .dhcm-memory-card__play {
	background: #ffffff;
	box-shadow: 0 18px 36px rgba(15,23,42,0.34);
	transform: translate(-50%, -50%) scale(1.04);
}

.dhcm-memory-card__image--video:focus-visible {
	outline: 3px solid rgba(255,122,0,0.45);
	outline-offset: 4px;
}

/* v0.6.31 — community-submitted DAFTer events */
.dhcm-community-submit-cta {
	margin-top: 22px;
}

.dhcm-form-grid {
	display: grid;
	gap: 16px;
}

.dhcm-form-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dhcm-form-group--wide {
	grid-column: 1 / -1;
}

.dhcm-community-event-form label {
	display: block;
	font-weight: 700;
	color: var(--dhcm-ink, #102a43);
	margin-bottom: 6px;
}

.dhcm-community-event-form input[type="text"],
.dhcm-community-event-form input[type="url"],
.dhcm-community-event-form input[type="date"],
.dhcm-community-event-form input[type="time"],
.dhcm-community-event-form input[type="file"],
.dhcm-community-event-form textarea {
	width: 100%;
	border: 1px solid var(--dhcm-card-border, #e3eaf5);
	border-radius: 12px;
	background: #fff;
	color: var(--dhcm-ink, #102a43);
	padding: 10px 12px;
}

.dhcm-community-event-form textarea {
	min-height: 96px;
}

.dhcm-card--community-event {
	border-color: rgba(255, 122, 0, 0.32);
}

.dhcm-card--community-event::before,
.dhcm-event-hero--community::before {
	background: linear-gradient(90deg, var(--dhcm-orange, #ff7a00), #0a8f74);
	opacity: 0.32;
}

.dhcm-badge--community {
	background: rgba(255, 122, 0, 0.12) !important;
	color: #9a4a00 !important;
	border: 0 !important;
}

.dhcm-community-event-note {
	margin: 14px 0;
}

.dhcm-calendar__event--community {
	background: rgba(255, 122, 0, 0.12);
	color: #9a4a00 !important;
	border-color: rgba(255, 122, 0, 0.28);
}

.dhcm-calendar__event--community .dhcm-calendar__event-marker {
	background: rgba(255, 122, 0, 0.18);
	color: #9a4a00;
}

@media (max-width: 780px) {
	.dhcm-form-grid--2 {
		grid-template-columns: 1fr;
	}
}

/* v0.6.32 — community submission audit polish */
.dhcm-hero-highlight__badge {
	margin-top: 8px;
}
