.csl-core-status,
.csl-core-download-details,
.csl-core-library {
	box-sizing: border-box;
	max-width: 100%;
}

.csl-core-status {
	border: 1px solid #e7cdb2;
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 10px 30px rgba(59, 33, 24, 0.09);
	padding: clamp(1.2rem, 3vw, 2rem);
	color: #3b2118;
}

.csl-core-cafe-state {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.8rem;
	border: 1px solid currentColor;
	border-radius: 999px;
	padding: 0.35rem 0.65rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.csl-core-cafe-state--open { color: #477152; background: #eff8ef; }
.csl-core-cafe-state--limited { color: #8a5b1d; background: #fff6df; }
.csl-core-cafe-state--closed,
.csl-core-cafe-state--maintenance { color: #934c42; background: #fff0ed; }
.csl-core-cafe-state--requests,
.csl-core-cafe-state--commissions { color: #356344; background: #eff8ef; }
.csl-core-cafe-state--delayed { color: #8a5b1d; background: #fff6df; }
.csl-core-cafe-state--break { color: #674b78; background: #f7effb; }

.csl-core-badge.csl-cafe-stamp {
	border-width: 2px;
	letter-spacing: 0.055em;
	text-transform: uppercase;
	transform: rotate(-1deg);
}

.csl-core-library-card--daily-special {
	border-color: #b76b45;
	box-shadow: 0 12px 28px rgba(92, 56, 41, 0.14);
}

.csl-cafe-order-number {
	font-size: 1.08em;
	font-weight: 800;
	letter-spacing: 0.05em;
}

.csl-core-status__mode {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.csl-core-status__symbol {
	display: grid;
	flex: 0 0 3.6rem;
	width: 3.6rem;
	height: 3.6rem;
	place-items: center;
	border-radius: 50%;
	background: #f5e8d8;
	font-size: 1.7rem;
}

.csl-core-status h2,
.csl-core-download-details h2,
.csl-core-library h2,
.csl-core-library h3 {
	margin-top: 0;
	color: inherit;
}

.csl-core-eyebrow {
	margin: 0 0 0.15rem;
	color: #9b4f2e;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.csl-core-status__message {
	font-size: 1.08rem;
}

.csl-core-status__details,
.csl-core-definition-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0.8rem;
	margin: 1.2rem 0 0;
}

.csl-core-status__details > div,
.csl-core-definition-grid > div {
	border-radius: 0.75rem;
	background: #f5e8d8;
	padding: 0.8rem;
}

/* Status detail panels always use their own readable foreground colors. */
.csl-core-status__details > div,
.csl-core-status__details dt,
.csl-core-status__details dd {
	color: #3b2118;
	text-shadow: none;
}

.csl-core-status dt,
.csl-core-definition-grid dt {
	color: #5c3829;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.csl-core-status dd,
.csl-core-definition-grid dd {
	margin: 0.2rem 0 0;
	font-weight: 650;
}

.csl-core-status__updated,
.csl-core-library-card__meta,
.csl-core-result-count {
	color: #5c3829;
	font-size: 0.8rem;
}

/* Coffee Bean status palette: scoped to the shared status block only. */
.csl-core-status {
	position: relative;
	overflow: hidden;
	border-color: var(--csl-status-caramel, #a47551);
	background: linear-gradient(145deg, var(--csl-status-espresso, #29190e), var(--csl-status-coffee, #523a28));
	color: var(--csl-status-cream, #e4d4c8);
	box-shadow: 0 14px 30px rgba(41, 25, 14, 0.2);
}

.csl-core-status::after {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(circle at 88% 16%, rgba(228, 212, 200, 0.12), transparent 34%);
	content: "";
}

.csl-core-status > * {
	position: relative;
	z-index: 1;
}

.csl-core-status .csl-core-eyebrow {
	display: inline-flex;
	margin-bottom: 0.3rem;
	border: 1px solid var(--csl-status-caramel, #a47551);
	border-radius: 999px;
	padding: 0.28rem 0.6rem;
	background: var(--csl-status-cream, #e4d4c8);
	color: var(--csl-status-espresso, #29190e) !important;
	line-height: 1;
}

/* Keep artwork, mode name, and Current mode aligned on one stable header row. */
.csl-core-status > .csl-core-status__mode {
	min-height: 3.6rem;
	padding-inline-end: 0;
	align-items: center;
}

.csl-core-status > .csl-core-status__mode > :is(.csl-status-art, .csl-core-status__symbol) {
	align-self: center;
	margin-block: 0;
}

.csl-core-status > .csl-core-status__mode > div {
	display: grid;
	flex: 1 1 auto;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	min-width: 0;
}

.csl-core-status > .csl-core-status__mode > div > h2 {
	grid-column: 1;
	margin: 0 !important;
	line-height: 1.15;
}

.csl-core-status > .csl-core-status__mode > div > .csl-core-eyebrow {
	position: static !important;
	grid-column: 2;
	justify-self: end;
	margin: 0 !important;
}

@media (max-width: 520px) {
	.csl-core-status > .csl-core-status__mode > div { grid-template-columns: 1fr; gap: 0.35rem; }
	.csl-core-status > .csl-core-status__mode > div > .csl-core-eyebrow { grid-column: 1; grid-row: 1; justify-self: start; }
	.csl-core-status > .csl-core-status__mode > div > h2 { grid-column: 1; grid-row: 2; }
}

.csl-core-status h2,
.csl-core-status__message,
.csl-core-status__updated {
	color: var(--csl-status-cream, #e4d4c8) !important;
}

.csl-core-status__symbol {
	border: 1px solid var(--csl-status-caramel, #a47551);
	background: var(--csl-status-latte, #d0b49f);
	color: var(--csl-status-espresso, #29190e);
}

.csl-core-status__details > div {
	border: 1px solid color-mix(in srgb, var(--csl-status-caramel, #a47551) 45%, transparent);
	background: var(--csl-status-latte, #d0b49f);
}

.csl-core-status__details > div,
.csl-core-status__details dt,
.csl-core-status__details dd {
	color: var(--csl-status-espresso, #29190e);
}

.csl-core-badge-wrap {
	margin-block: 0.5rem;
}

.csl-core-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	width: fit-content;
	border: 1px solid currentColor;
	border-radius: 999px;
	padding: 0.28rem 0.68rem;
	font-size: 0.76rem;
	font-weight: 800;
	line-height: 1.2;
}

.csl-core-badge--compatible,
.csl-core-badge--updated {
	color: #2f6b45;
	background: #edf7ef;
}

.csl-core-badge--testing {
	color: #7a5200;
	background: #fff6d9;
}

.csl-core-badge--needs-update,
.csl-core-badge--broken {
	color: #96362f;
	background: #fff0ed;
}

.csl-core-badge--retired,
.csl-core-badge--unrated {
	color: #5c3829;
	background: #f5e8d8;
}

.csl-core-download-details {
	border: 1px solid #e7cdb2;
	border-radius: 1.1rem;
	background: #fff;
	padding: clamp(1.2rem, 3vw, 2rem);
}

.csl-core-requirements {
	padding-left: 1.2rem;
}

.csl-core-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.csl-action-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0.72rem;
}

.csl-action-buttons :where(button, a),
.csl-core-card-link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.csl-core-button,
.csl-core-filters button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.7rem;
	border: 2px solid #9b4f2e;
	border-radius: 999px;
	background: #9b4f2e;
	color: #fff;
	padding: 0.65rem 1.05rem;
	font: inherit;
	font-size: 0.86rem;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
}

.csl-core-button--outline {
	background: transparent;
	color: #9b4f2e;
}

.csl-core-filters {
	display: grid;
	grid-template-columns: minmax(210px, 2fr) repeat(2, minmax(150px, 1fr)) auto auto;
	align-items: end;
	gap: 0.75rem;
	margin-bottom: 1rem;
	border: 1px solid #e7cdb2;
	border-radius: 1rem;
	background: #f5e8d8;
	padding: 1rem;
}

.csl-core-filters label {
	display: grid;
	gap: 0.3rem;
	font-size: 0.78rem;
	font-weight: 750;
}

.csl-core-filters input,
.csl-core-filters select {
	box-sizing: border-box;
	width: 100%;
	min-height: 2.7rem;
	border: 1px solid #d9b899;
	border-radius: 0.65rem;
	background: #fff;
	color: #3b2118;
	padding: 0.55rem 0.7rem;
	font: inherit;
}

.csl-core-reset {
	display: inline-flex;
	min-height: 2.7rem;
	align-items: center;
	font-weight: 750;
}

.csl-core-library-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.csl-core-library-card {
	overflow: hidden;
	border: 1px solid #e7cdb2;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 8px 24px rgba(59, 33, 24, 0.07);
}

.csl-core-library-card__image,
.csl-core-library-card__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #f5e8d8;
}

.csl-core-library-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.csl-core-library-card__placeholder {
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, #f5e8d8, #e7b9a5);
	font-size: 2rem;
}

.csl-core-library-card__body {
	padding: 1rem;
}

.csl-core-library-card h3 {
	margin: 0.8rem 0 0.5rem;
	font-size: 1.25rem;
}

.csl-core-library-card h3 a,
.csl-core-card-link {
	color: #3b2118;
}

.csl-core-card-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 800;
}

.csl-core-empty {
	border: 2px dashed #e7cdb2;
	border-radius: 1rem;
	background: #fff9f2;
	padding: 1.5rem;
	text-align: center;
}

:where(.csl-core-button, .csl-core-filters button, .csl-core-filters input, .csl-core-filters select, .csl-core-reset, .csl-core-library-card a):focus-visible {
	outline: 3px solid #d79a40;
	outline-offset: 3px;
}

@media (max-width: 900px) {
	.csl-core-filters {
		grid-template-columns: 1fr 1fr;
	}

	.csl-core-filter-search {
		grid-column: 1 / -1;
	}

	.csl-core-library-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 620px) {
	.csl-core-filters,
	.csl-core-library-grid {
		grid-template-columns: 1fr;
	}

	.csl-core-filter-search {
		grid-column: auto;
	}

	.csl-core-button,
	.csl-core-filters button,
	.csl-core-collection-filters button,
	.csl-core-reset,
	.csl-account-actions button,
	.csl-action-buttons button {
		width: 100%;
		min-height: 44px;
	}
}

.csl-core-collection,
.csl-core-suggestions,
.csl-core-form-slot {
	box-sizing: border-box;
	max-width: 100%;
}

.csl-core-collection-filters {
	display: grid;
	grid-template-columns: minmax(220px, 2fr) minmax(170px, 1fr) auto auto;
	align-items: end;
	gap: 0.75rem;
	margin-bottom: 1rem;
	border: 1px solid #e7cdb2;
	border-radius: 1rem;
	background: #f5e8d8;
	padding: 1rem;
}

.csl-core-collection-filters label {
	display: grid;
	gap: 0.3rem;
	font-size: 0.78rem;
	font-weight: 750;
}

.csl-core-collection-filters input,
.csl-core-collection-filters select {
	width: 100%;
	min-height: 2.7rem;
	border: 1px solid #d9b899;
	border-radius: 0.65rem;
	background: #fff;
	color: #3b2118;
	padding: 0.55rem 0.7rem;
	font: inherit;
}

.csl-core-collection-filters button {
	min-height: 2.7rem;
	border: 2px solid #9b4f2e;
	border-radius: 999px;
	background: #9b4f2e;
	color: #fff;
	padding: 0.65rem 1.05rem;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}

.csl-core-collection-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.csl-core-layout--compact :where(.csl-core-library-grid, .csl-core-collection-grid) {
	grid-template-columns: minmax(0, 1fr);
}

.csl-core-layout--compact :where(.csl-core-library-card, .csl-core-card) {
	display: grid;
	grid-template-columns: minmax(96px, 30%) minmax(0, 1fr);
}

.csl-core-layout--compact :where(.csl-core-library-card__image, .csl-core-library-card__placeholder, .csl-core-card__media, .csl-core-card__placeholder) {
	height: 100%;
	min-height: 150px;
	aspect-ratio: auto;
}

.csl-core-layout--compact .csl-action-buttons {
	grid-column: 1 / -1;
}

.csl-status-summary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	border: 1px solid #e7cdb2;
	border-radius: 1rem;
	background: #fff9f2;
	color: #3b2118;
	padding: 1rem;
}

.csl-status-summary p { margin: 0; }

.csl-brewing-progress {
	position: relative;
	overflow: hidden;
	border-radius: 999px;
	background: #f5e8d8;
	padding: 0.45rem 0.75rem;
}

.csl-brewing-progress span {
	position: absolute;
	inset: 0 auto 0 0;
	background: rgba(155, 79, 46, 0.18);
}

.csl-brewing-progress strong { position: relative; }

.csl-core-card {
	overflow: hidden;
	border: 1px solid #e7cdb2;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 8px 24px rgba(59, 33, 24, 0.07);
}

.csl-core-card__media,
.csl-core-card__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	background: #f5e8d8;
}

.csl-core-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.csl-core-card__placeholder {
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, #f5e8d8, #e7b9a5);
	font-size: 2rem;
}

.csl-core-card__body {
	padding: 1rem;
}

.csl-core-card__body h3 {
	margin: 0.6rem 0 0.4rem;
	font-size: 1.28rem;
}

.csl-core-card__body h3 a {
	color: #3b2118;
}

.csl-core-card__meta {
	color: #5c3829;
	font-size: 0.8rem;
}

.csl-core-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.csl-core-chips span {
	border-radius: 999px;
	background: #f5e8d8;
	color: #5c3829;
	padding: 0.2rem 0.55rem;
	font-size: 0.72rem;
	font-weight: 700;
}

.csl-core-suggestion-list {
	display: grid;
	gap: 0.8rem;
}

.csl-core-suggestion {
	display: grid;
	grid-template-columns: minmax(120px, 190px) minmax(0, 1fr) auto;
	align-items: stretch;
	overflow: hidden;
	border: 1px solid #e7cdb2;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 8px 24px rgba(59, 33, 24, 0.055);
}

.csl-core-suggestion .csl-core-card__media,
.csl-core-suggestion .csl-core-card__placeholder {
	height: 100%;
	min-height: 155px;
	aspect-ratio: auto;
}

.csl-core-suggestion__body {
	padding: 1rem;
}

.csl-core-suggestion__body h3 {
	margin: 0.45rem 0;
}

.csl-core-suggestion__counts {
	display: grid;
	min-width: 76px;
	place-content: center;
	gap: 0.3rem;
	border-left: 1px solid #e7cdb2;
	background: #fff9f2;
	padding: 0.8rem;
	text-align: center;
}

.csl-core-suggestion__counts strong {
	font-size: 1.12rem;
}

.csl-core-form-slot {
	border: 2px dashed #d9b899;
	border-radius: 1rem;
	background: #fff9f2;
	padding: 1.25rem;
}

.csl-core-form-slot form {
	margin: 0;
}

.csl-core-form-slot :where(input, select, textarea) {
	box-sizing: border-box;
	max-width: 100%;
}

:where(.csl-core-collection-filters button, .csl-core-collection-filters input, .csl-core-collection-filters select, .csl-core-card a, .csl-core-suggestion a, .csl-core-form-slot a, .csl-core-form-slot button, .csl-core-form-slot input, .csl-core-form-slot select, .csl-core-form-slot textarea):focus-visible {
	outline: 3px solid #d79a40;
	outline-offset: 3px;
}

@media (max-width: 1050px) {
	.csl-core-collection-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 800px) {
	.csl-core-collection-filters {
		grid-template-columns: 1fr 1fr;
	}

	.csl-core-collection-filters label:first-child {
		grid-column: 1 / -1;
	}

	.csl-core-collection-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.csl-core-suggestion {
		grid-template-columns: 120px minmax(0, 1fr);
	}

	.csl-core-suggestion__counts {
		grid-column: 1 / -1;
		grid-template-columns: auto auto;
		border-top: 1px solid #e7cdb2;
		border-left: 0;
	}
}

@media (max-width: 560px) {
	.csl-core-collection-filters,
	.csl-core-collection-grid,
	.csl-core-suggestion {
		grid-template-columns: 1fr;
	}

	.csl-core-layout--compact :where(.csl-core-library-card, .csl-core-card),
	.csl-status-summary {
		grid-template-columns: 1fr;
	}

	.csl-core-collection-filters label:first-child,
	.csl-core-suggestion__counts {
		grid-column: auto;
	}

	.csl-core-suggestion .csl-core-card__media,
	.csl-core-suggestion .csl-core-card__placeholder {
		aspect-ratio: 16 / 10;
	}
}

/* Version 2.1 proportions for the approved dense editorial mockups. */
.csl-core-status,
.csl-core-download-details {
	padding: clamp(0.8rem, 1.5vw, 1.15rem);
	border-radius: 0.85rem;
	box-shadow: 0 5px 18px rgba(59, 33, 24, 0.06);
}

.csl-core-status__mode {
	gap: 0.65rem;
}

.csl-core-status__symbol {
	flex-basis: 2.8rem;
	width: 2.8rem;
	height: 2.8rem;
	font-size: 1.3rem;
}

.csl-core-status h2 {
	font-size: clamp(1.35rem, 2vw, 1.75rem);
}

.csl-core-status__message {
	font-size: 0.88rem;
}

.csl-core-status__details,
.csl-core-definition-grid {
	gap: 0.55rem;
	margin-top: 0.75rem;
}

.csl-core-status__details > div,
.csl-core-definition-grid > div {
	padding: 0.6rem;
}

.csl-core-filters,
.csl-core-collection-filters {
	gap: 0.55rem;
	padding: 0.7rem;
	border-radius: 0.75rem;
}

.csl-core-filters input,
.csl-core-filters select,
.csl-core-collection-filters input,
.csl-core-collection-filters select,
.csl-core-filters button,
.csl-core-collection-filters button {
	min-height: 2.35rem;
	font-size: 0.78rem;
}

.csl-core-library-grid,
.csl-core-collection-grid {
	gap: 0.7rem;
}

.csl-core-library-card,
.csl-core-card,
.csl-core-suggestion {
	border-radius: 0.75rem;
	box-shadow: 0 4px 15px rgba(59, 33, 24, 0.05);
}

.csl-core-library-card__body,
.csl-core-card__body,
.csl-core-suggestion__body {
	padding: 0.72rem;
}

.csl-core-library-card h3,
.csl-core-card__body h3,
.csl-core-suggestion__body h3 {
	font-size: 1.02rem;
}

.csl-core-library-card p,
.csl-core-card__body p,
.csl-core-suggestion__body p {
	font-size: 0.8rem;
	line-height: 1.45;
}

.csl-core-card-link,
.csl-core-library-card__meta,
.csl-core-card__meta,
.csl-core-result-count {
	font-size: 0.74rem;
}

.csl-core-suggestion {
	grid-template-columns: minmax(105px, 165px) minmax(0, 1fr) auto;
}

.csl-core-suggestion .csl-core-card__media,
.csl-core-suggestion .csl-core-card__placeholder {
	min-height: 128px;
}

@media (max-width: 800px) {
	.csl-core-suggestion {
		grid-template-columns: 110px minmax(0, 1fr);
	}

	.csl-core-suggestion__counts {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.csl-core-suggestion {
		grid-template-columns: 1fr;
	}

	.csl-core-suggestion__counts {
		grid-column: auto;
	}
}

.csl-library-pagination ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}.csl-library-pagination a,.csl-library-pagination .current{display:block;padding:.5rem .8rem;border:1px solid currentColor;border-radius:.4rem}.csl-library-pagination .current{font-weight:bold}
.csl-contact-reasons{display:flex;flex-wrap:wrap;gap:.65rem 1rem;border:1px solid #dcc1a4;border-radius:10px;padding:1rem}.csl-contact-reasons legend{font-weight:700;padding:0 .35rem}.csl-contact-reasons label{display:inline-flex;align-items:center;gap:.35rem}

/* Editor-only markup around the dynamic Current Status preview. */
.csl-status-editor-shell{border:2px dashed #9a6546;border-radius:14px;padding:14px;background:#fffaf3;box-shadow:0 4px 14px rgba(67,43,29,.08)}
.csl-status-editor-guide{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:12px 14px;background:#f5e5d3;border-radius:10px;color:#3b2118}
.csl-status-editor-guide p{margin:.25rem 0 0;font-size:13px}.csl-status-editor-guide .button{flex-shrink:0}
.csl-status-editor-preview{pointer-events:none}.csl-status-editor-help{margin:10px 2px 0;color:#6b5547;font-size:12px}
.csl-status-inline-editor{margin:0 0 14px;border:1px solid #dcc1a4;border-radius:10px;background:#fff;padding:0 14px 14px}.csl-status-inline-editor summary{cursor:pointer;font-weight:700;padding:12px 0;color:#315b45}.csl-status-inline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.csl-status-inline-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.csl-status-inline-actions span{font-size:12px;color:#315b45}
@media(max-width:700px){.csl-status-editor-guide{align-items:flex-start;flex-direction:column}}

/* My Cafe account dashboard. Dynamic account data remains owned by Core. */
.csl-my-cafe {
	--csl-account-espresso: #29190e;
	--csl-account-coffee: #523a28;
	--csl-account-caramel: #a47551;
	--csl-account-latte: #d0b49f;
	--csl-account-cream: #fff9f2;
	--csl-account-button: #9d512f;
	--csl-account-highlight: #8d4d2f;
	--csl-account-border: #ead0b9;
	--csl-account-surface: #fffaf4;
	--csl-account-card: #fffdf9;
	--csl-account-welcome-start: #fffaf4;
	--csl-account-welcome-end: #f4dfcf;
	--csl-my-cafe-max-width: 1180px;
	--csl-my-cafe-radius: 20px;
	--csl-my-cafe-button-radius: 999px;
	--csl-my-cafe-recommendation-columns: 2;
	display: grid;
	gap: 1.25rem;
	max-width: var(--csl-my-cafe-max-width);
	margin-inline: auto;
	color: var(--csl-account-espresso);
}
.csl-my-cafe-welcome {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.25rem;
	border: 1px solid var(--csl-account-border);
	border-radius: var(--csl-my-cafe-radius);
	padding: clamp(1rem, 3vw, 1.8rem);
	background: linear-gradient(115deg, var(--csl-account-welcome-start) 0 48%, var(--csl-account-welcome-end) 48% 100%);
	box-shadow: 0 12px 30px rgba(82, 58, 40, 0.1);
}
.csl-my-cafe-welcome h2,.csl-my-cafe h2,.csl-my-cafe h3 { color: var(--csl-account-espresso); }
.csl-my-cafe-welcome h2 { margin: 0.1rem 0 0.35rem; font-size: clamp(1.6rem, 3vw, 2.35rem); }
.csl-my-cafe-welcome p { margin-block: 0.2rem; }
.csl-my-cafe-kicker { margin: 0; color: var(--csl-account-highlight); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.csl-my-cafe-counts { display: grid; grid-template-columns: repeat(3,minmax(92px,1fr)); gap: .6rem; }
.csl-my-cafe-counts span { display: grid; min-height: 70px; place-content: center; border: 1px solid var(--csl-account-border); border-radius: var(--csl-my-cafe-radius); padding: .65rem .8rem; background: var(--csl-account-surface); text-align: center; font-size: .78rem; }
.csl-my-cafe-counts strong { display: block; color: var(--csl-account-highlight); font-size: 1.35rem; line-height: 1; }
.csl-my-cafe-tabs { display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; border: 1px solid var(--csl-account-border); border-radius: var(--csl-my-cafe-radius); background: var(--csl-account-surface); box-shadow: 0 6px 18px rgba(82,58,40,.07); }
.csl-my-cafe-tabs button { min-height: 48px; border: 0; border-inline-end: 1px solid #ead7c5; padding: .75rem; background: transparent; color: var(--csl-account-coffee); font: inherit; font-weight: 750; cursor: pointer; }
.csl-my-cafe-tabs button:last-child { border-inline-end: 0; }
.csl-my-cafe-tabs button[aria-selected="true"] { background: var(--csl-account-coffee); color: #fffaf4; }
.csl-my-cafe-tabs button:focus-visible { outline: 3px solid #d07b49; outline-offset: -3px; }
.csl-my-cafe .wp-element-button { border-color: var(--csl-account-button); border-radius: var(--csl-my-cafe-button-radius); background: var(--csl-account-button); color: #fff; }
.csl-my-cafe .wp-element-button.is-style-outline { background: transparent; color: var(--csl-account-coffee); }
.csl-my-cafe.is-enhanced [role="tabpanel"][hidden] { display: none; }
.csl-my-cafe-panel { border: 1px solid var(--csl-account-border); border-radius: var(--csl-my-cafe-radius); padding: clamp(1rem,2.5vw,1.5rem); background: var(--csl-account-surface); box-shadow: 0 8px 24px rgba(82,58,40,.07); }
.csl-my-cafe-overview-grid,.csl-my-cafe-account-grid { display: grid; gap: 1rem; }
.csl-my-cafe-overview-grid { grid-template-columns: 1fr; }
.csl-my-cafe-account-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.csl-my-cafe-overview-grid > section,.csl-my-cafe-account-grid > section,.csl-my-cafe-recommended { border: 1px solid var(--csl-account-border); border-radius: var(--csl-my-cafe-radius); padding: 1rem; background: var(--csl-account-card); }
.csl-my-cafe-recommended { margin-top: 1rem; }
.csl-my-cafe-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.csl-my-cafe-section-heading h2 { margin: .1rem 0 0; font-size: clamp(1.25rem,2vw,1.7rem); }
.csl-my-cafe-section-heading label { font-size: .82rem; font-weight: 700; }
.csl-my-cafe-section-heading select { display: block; min-height: 42px; margin-top: .25rem; border: 1px solid #cda98b; border-radius: .55rem; padding: .4rem .7rem; background: #fff; }
.csl-my-cafe-shelf-grid,.csl-my-cafe-recommendations { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.csl-my-cafe-recommendations { grid-template-columns: repeat(var(--csl-my-cafe-recommendation-columns),minmax(0,1fr)); }
.csl-my-cafe-shelf-card { display: grid; grid-template-columns: minmax(160px,38%) minmax(0,1fr); overflow: hidden; border: 1px solid var(--csl-account-border); border-radius: var(--csl-my-cafe-radius); background: var(--csl-account-card); box-shadow: 0 4px 12px rgba(82,58,40,.06); }
.csl-my-cafe-overview-grid .csl-my-cafe-shelf-card { grid-template-columns: minmax(180px,260px) minmax(0,1fr); }
.csl-my-cafe-card__image,.csl-my-cafe-card__fallback { width: 100%; height: 100%; min-height: 150px; object-fit: cover; }
.csl-my-cafe-card__fallback { display: grid; place-items: center; background: linear-gradient(135deg,#f2deca,#fff7ed); font-size: 2.25rem; }
.csl-my-cafe-card__body { display: flex; flex-direction: column; align-items: flex-start; padding: .9rem; }
.csl-my-cafe-card__body h3 { margin: .2rem 0 .55rem; font-size: 1.1rem; line-height: 1.2; }
.csl-my-cafe-card__meta { margin: 0; color: #76523e; font-size: .75rem; font-weight: 700; }
.csl-my-cafe-card__actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: auto; padding-top: .7rem; }
.csl-my-cafe-card__actions .csl-account-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.csl-my-cafe-card__actions button,.csl-my-cafe-card__actions .wp-element-button { min-height: 40px; border: 1px solid var(--csl-account-button); border-radius: var(--csl-my-cafe-button-radius); padding: .5rem .85rem; background: #fff; color: var(--csl-account-coffee); font: inherit; font-size: .78rem; font-weight: 750; text-decoration: none; }
.csl-my-cafe-card__actions .wp-element-button { background: var(--csl-account-button); color: #fff; }
.csl-my-cafe-card__actions .csl-my-cafe-visit { display: inline-flex; width: auto; min-width: 0; min-height: 40px; align-self: center; align-items: center; justify-content: center; padding: .5rem .9rem; line-height: 1.2; white-space: nowrap; }
.csl-my-cafe-status { display: inline-flex; border-radius: 999px; padding: .3rem .65rem; background: #f2dfcf; color: #6d3b24; font-size: .72rem; font-weight: 800; }
.csl-my-cafe-ticket-list { display: grid; gap: .65rem; }
.csl-my-cafe-ticket { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; border: 1px solid #ead5c2; border-radius: .8rem; padding: .8rem; background: #fff; }
.csl-my-cafe-ticket h3,.csl-my-cafe-ticket p { margin: .1rem 0; }
.csl-my-cafe-ticket h3 { font-size: .95rem; }
.csl-my-cafe-ticket__number { color: #8b4a2c; font-size: .72rem; font-weight: 800; letter-spacing: .06em; }
.csl-my-cafe-ticket details { grid-column: 1 / -1; }
.csl-my-cafe-ticket summary { cursor: pointer; color: #7b4127; font-size: .8rem; font-weight: 750; }
.csl-my-cafe-ticket__message { margin-top: .7rem; border-inline-start: 3px solid #d0b49f; padding-inline-start: .8rem; }
.csl-my-cafe-notice { border: 1px solid #7ca189; border-radius: .8rem; padding: .8rem 1rem; background: #edf7f0; color: #214d31; font-weight: 700; }
.csl-my-cafe-notice--error { border-color: #bd7169; background: #fff3f1; color: #792c26; }
.csl-my-cafe-ticket.is-unread { border-inline-start: 5px solid var(--csl-account-button); }
.csl-my-cafe-unread-dot { display: inline-block; width: .58rem; height: .58rem; margin-right: .38rem; border-radius: 50%; background: var(--csl-account-button); box-shadow: 0 0 0 3px #f2dfcf; }
.csl-my-cafe-ticket-tools { display: grid; grid-template-columns: minmax(0,1fr) minmax(180px,.45fr) minmax(180px,.35fr); align-items: end; gap: .75rem; margin: 1rem 0; }
.csl-my-cafe-ticket-tools > label { display: grid; gap: .3rem; color: var(--csl-account-coffee); font-size: .8rem; font-weight: 750; }
.csl-my-cafe-ticket-tools input,.csl-my-cafe-ticket-tools select,.csl-my-cafe-reply textarea,.csl-my-cafe-reply input[type="file"] { box-sizing: border-box; width: 100%; min-height: 42px; border: 1px solid #cda98b; border-radius: .55rem; padding: .5rem .65rem; background: #fff; color: var(--csl-account-espresso); font: inherit; }
.csl-my-cafe-ticket-filters { display: flex; flex-wrap: wrap; gap: .4rem; }
.csl-my-cafe-ticket-filters button { min-height: 42px; border: 1px solid var(--csl-account-border); border-radius: 999px; padding: .5rem .8rem; background: var(--csl-account-card); color: var(--csl-account-coffee); font: inherit; font-size: .78rem; font-weight: 750; cursor: pointer; }
.csl-my-cafe-ticket-filters button.is-active { border-color: var(--csl-account-coffee); background: var(--csl-account-coffee); color: #fff; }
.csl-my-cafe-ticket-filters span { display: inline-grid; min-width: 1.35rem; min-height: 1.35rem; place-content: center; margin-left: .25rem; border-radius: 999px; background: rgba(164,117,81,.18); font-size: .7rem; }
.csl-my-cafe-ticket-filters button.is-active span { background: rgba(255,255,255,.2); }
.csl-my-cafe-timeline { display: grid; gap: .65rem; margin-top: .8rem; }
.csl-my-cafe-event { max-width: 88%; border: 1px solid var(--csl-account-border); border-radius: .8rem; padding: .8rem; background: var(--csl-account-card); }
.csl-my-cafe-event--owner { margin-left: auto; background: #f5e5d8; }
.csl-my-cafe-event header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; margin-bottom: .4rem; color: var(--csl-account-highlight); font-size: .76rem; }
.csl-my-cafe-event p:last-child { margin-bottom: 0; }
.csl-my-cafe-reply { display: grid; gap: .65rem; margin-top: 1rem; border-top: 1px solid var(--csl-account-border); padding-top: 1rem; }
.csl-my-cafe-reply > label { display: grid; gap: .35rem; font-weight: 750; }
.csl-my-cafe-reply textarea { min-height: 110px; resize: vertical; }
.csl-my-cafe-file { max-width: 520px; }
.csl-my-cafe-mark-read { margin-top: .75rem; }
.csl-my-cafe-mark-read button { border: 0; padding: 0; background: transparent; color: var(--csl-account-highlight); font: inherit; font-weight: 750; text-decoration: underline; cursor: pointer; }
.csl-my-cafe-closed-note { border-radius: .7rem; padding: .7rem; background: #f2e7dc; color: #6f4c38; }
.csl-my-cafe-account-grid input[type="text"] { box-sizing: border-box; width: 100%; min-height: 44px; border: 1px solid #cda98b; border-radius: .55rem; padding: .55rem .7rem; }
.csl-my-cafe-check { display: flex; align-items: flex-start; gap: .55rem; }
.csl-my-cafe-check input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; }
.csl-my-cafe-danger { margin-top: 1rem; border: 1px solid #bd7169; border-radius: .9rem; background: #fff8f7; }
.csl-my-cafe-danger summary { cursor: pointer; padding: .85rem 1rem; color: #8c3029; font-weight: 800; }
.csl-my-cafe-danger > div { border-top: 1px solid #ecd0cc; padding: 1rem; }
.csl-danger-button { min-height: 44px; border: 1px solid #8c3029; border-radius: .55rem; padding: .55rem .85rem; background: #8c3029; color: #fff; font: inherit; font-weight: 750; }
.csl-my-cafe-empty { border: 1px dashed #d0b49f; border-radius: .8rem; padding: 1rem; background: #fffaf4; color: #6f4c38; }
.csl-my-cafe--guest { justify-items: center; border: 1px solid #e3c5a9; border-radius: 1.25rem; padding: clamp(1.4rem,4vw,2.5rem); background: linear-gradient(145deg,#fffaf4,#f4dfcf); text-align: center; }
.csl-my-cafe-guest-art { display: grid; width: 76px; height: 76px; place-items: center; border-radius: 50%; background: #fff; font-size: 2.2rem; box-shadow: 0 7px 18px rgba(82,58,40,.12); }
.csl-my-cafe-guest-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem; }
@media (max-width: 900px) {
	.csl-my-cafe-welcome { grid-template-columns: 1fr; }
	.csl-my-cafe-counts { grid-column: 1 / -1; width: 100%; }
	.csl-my-cafe-account-grid { grid-template-columns: 1fr; }
	.csl-my-cafe-recommendations { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.csl-my-cafe-ticket-tools { grid-template-columns: 1fr 1fr; }
	.csl-my-cafe-ticket-filters { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
	.csl-my-cafe-welcome { grid-template-columns: 1fr; text-align: center; }
	.csl-my-cafe-counts { grid-template-columns: 1fr; }
	.csl-my-cafe-tabs { grid-template-columns: repeat(2,1fr); }
	.csl-my-cafe-tabs button:nth-child(2) { border-inline-end: 0; }
	.csl-my-cafe-shelf-grid,.csl-my-cafe-recommendations { grid-template-columns: 1fr; }
	.csl-my-cafe-shelf-card { grid-template-columns: 1fr; }
	.csl-my-cafe-card__image,.csl-my-cafe-card__fallback { aspect-ratio: 16/9; min-height: 0; }
	.csl-my-cafe-section-heading { align-items: flex-start; flex-direction: column; }
	.csl-my-cafe-ticket-tools { grid-template-columns: 1fr; }
	.csl-my-cafe-ticket-filters { grid-column: auto; }
	.csl-my-cafe-ticket { grid-template-columns: 1fr; }
	.csl-my-cafe-status--ticket { justify-self: start; }
	.csl-my-cafe-event { max-width: 100%; }
}

/* 3.23 optional public cafe dashboard widgets. All rules are scoped to avoid theme/plugin conflicts. */
.csl-cafe-widgets{--csl-widget-ink:#29190e;--csl-widget-coffee:#523a28;--csl-widget-caramel:#a47551;--csl-widget-cream:#fffaf4;--csl-widget-paper:#f7efe8;display:grid;gap:1.25rem;margin-block:1.5rem;color:var(--csl-widget-ink)}
.csl-cafe-widget{box-sizing:border-box;overflow:hidden;border:1px solid #d0b49f;border-radius:1.2rem;padding:clamp(1rem,3vw,1.6rem);background:linear-gradient(145deg,var(--csl-widget-cream),var(--csl-widget-paper));box-shadow:0 10px 28px rgba(82,58,40,.08)}
.csl-cafe-widget a{color:#7a3f26;text-underline-offset:.16em}.csl-cafe-widget h2,.csl-cafe-widget h3{color:var(--csl-widget-coffee)}
.csl-cafe-widget__heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.csl-cafe-widget__heading p,.csl-cafe-widget__heading h2{margin:.12rem 0}.csl-cafe-widget__heading p{color:#8c563b;font-size:.73rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.csl-cafe-widget__heading>span{display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center;border-radius:50%;background:#fff8f0;font-size:1.45rem;box-shadow:inset 0 0 0 1px #e6cdb6}
.csl-cafe-menu-grid,.csl-cafe-compact-grid,.csl-cafe-bean-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem}.csl-cafe-menu-grid>div,.csl-cafe-compact-grid>article,.csl-cafe-bean-grid>article{border:1px solid #e6cdb6;border-radius:.85rem;padding:.9rem;background:rgba(255,255,255,.7)}
.csl-cafe-menu-grid span{display:block;margin-bottom:.25rem;color:#855036;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.csl-cafe-menu-grid strong{display:block}.csl-cafe-menu-grid button,.csl-cafe-widget button{min-height:42px;border:1px solid #8e4a2e;border-radius:999px;padding:.55rem .9rem;background:#925034;color:#fff;font:inherit;font-weight:750;cursor:pointer}.csl-cafe-widget button:hover,.csl-cafe-widget button:focus-visible{background:#63331f}.csl-cafe-widget button:focus-visible,.csl-cafe-widget input:focus-visible,.csl-cafe-widget select:focus-visible{outline:3px solid #d39870;outline-offset:2px}
.csl-cafe-notice-list{display:grid;gap:.7rem}.csl-cafe-notice{border-inline-start:5px solid #a47551;border-radius:.7rem;padding:.8rem 1rem;background:#fff}.csl-cafe-notice h3,.csl-cafe-notice p{margin:.15rem 0}.csl-cafe-notice--important{border-inline-start-color:#9a5632;background:#fff6eb}.csl-cafe-notice--patch{border-inline-start-color:#52725e;background:#f3faf5}.csl-cafe-notice--issue{border-inline-start-color:#a4413b;background:#fff6f5}
.csl-cafe-compact-grid article h3,.csl-cafe-compact-grid article p,.csl-cafe-bean-grid article h3,.csl-cafe-bean-grid article p{margin:.2rem 0}.csl-cafe-compact-grid article>p:first-child{color:#875339;font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.csl-cafe-widget--bean{background:linear-gradient(135deg,#f3dfcb,#fff9f2)}.csl-cafe-event-list{display:grid;gap:.55rem;margin:0;padding:0}.csl-cafe-event-list li{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:1rem;align-items:center;border-bottom:1px dashed #d9bfa8;padding:.65rem 0;list-style:none}.csl-cafe-event-list time{color:#875339;font-weight:750}
.csl-cafe-widget--spotlight{display:grid;grid-template-columns:minmax(180px,36%) 1fr;align-items:center;gap:1.25rem}.csl-cafe-widget--spotlight img{display:block;width:100%;max-height:280px;border-radius:.8rem;object-fit:cover}.csl-cafe-search{display:grid;grid-template-columns:2fr 1fr auto;align-items:end;gap:.8rem}.csl-cafe-search label{font-weight:750}.csl-cafe-search input,.csl-cafe-search select{box-sizing:border-box;width:100%;min-height:44px;margin-top:.3rem;border:1px solid #c7a589;border-radius:.55rem;padding:.55rem .7rem;background:#fff;color:#29190e;font:inherit}
.csl-cafe-widget--comfort{display:flex;align-items:center;justify-content:space-between;gap:1rem}.csl-cafe-widget--comfort p,.csl-cafe-widget--comfort h2{margin:.15rem 0}.csl-cafe-widget--comfort>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.csl-cafe-widget--comfort button{background:#fff;color:#6a3924}
.csl-cafe-widgets--spring{--csl-widget-caramel:#7a8d63;--csl-widget-paper:#f2f5e9}.csl-cafe-widgets--summer{--csl-widget-caramel:#c37d45;--csl-widget-paper:#fff3d9}.csl-cafe-widgets--autumn{--csl-widget-caramel:#a55e35;--csl-widget-paper:#f5e3d0}.csl-cafe-widgets--halloween{--csl-widget-coffee:#3b263e;--csl-widget-caramel:#b55d2d;--csl-widget-paper:#f1e6ef}.csl-cafe-widgets--winter{--csl-widget-coffee:#3d5660;--csl-widget-caramel:#6f8c97;--csl-widget-paper:#edf6f7}
.csl-cafe-comfort--compact .csl-cafe-widgets{gap:.65rem}.csl-cafe-comfort--compact .csl-cafe-widget{padding:.85rem}.csl-cafe-comfort--reduce-motion .csl-cafe-widgets *{animation:none!important;scroll-behavior:auto!important;transition:none!important}
@media(max-width:720px){.csl-cafe-search{grid-template-columns:1fr}.csl-cafe-widget--spotlight{grid-template-columns:1fr}.csl-cafe-widget--comfort{align-items:flex-start;flex-direction:column}.csl-cafe-widget--comfort>div:last-child{justify-content:flex-start}.csl-cafe-event-list li{grid-template-columns:1fr;gap:.2rem}}
