/**
 * Boykin Legacy Client Portal — Frontend Styles
 *
 * Brand source: J. Boykin Live Saxophonist style guide
 * Adjust colors globally via :root tokens below.
 *
 * @package BoykinLegacy
 */

/* --------------------------------------------------------------------------
   Design tokens — canonical palette lives in luxury-design-system.css
   Portal-specific layout aliases only (do not redefine brand hex here).
   -------------------------------------------------------------------------- */
:root {
	--bl-panel-width: 300px;
	--bl-header-height: 76px;
}

/* --------------------------------------------------------------------------
   Portal shell — maps legacy tokens to component aliases
   -------------------------------------------------------------------------- */
.bl-portal,
.bl-auth-gate {
	--bl-gold: var(--legacy-gold);
	--bl-gold-light: var(--legacy-gold-light);
	--bl-gold-deep: var(--legacy-gold-deep);
	--bl-gold-muted: var(--legacy-gold-muted);
	--bl-teal: var(--legacy-teal);
	--bl-teal-light: var(--secondary-teal);
	--bl-teal-deep: var(--legacy-teal-deep);
	--bl-teal-glow: var(--legacy-teal-glow);
	--bl-marble: var(--marble-white);
	--bl-pearl: var(--pearl);
	--bl-off-white: var(--off-white);
	--bl-champagne: var(--champagne);
	--bl-sand: var(--warm-sand);
	--bl-charcoal: var(--charcoal);
	--bl-gray: var(--soft-gray);
	--bl-black: var(--charcoal);
	--bl-black-soft: var(--legacy-teal-deep);
	--bl-black-card: var(--pearl);
	--bl-text: var(--charcoal);
	--bl-text-muted: var(--soft-gray);
	--bl-text-dim: rgba(107, 113, 119, 0.88);
	--bl-text-on-dark: var(--off-white);
	--bl-border: var(--legacy-border-gold);
	--bl-border-subtle: var(--legacy-border-subtle);
	--bl-radius: var(--legacy-radius);
	--bl-radius-sm: var(--legacy-radius-sm);
	--bl-radius-lg: var(--legacy-radius-lg);
	--bl-shadow: var(--legacy-shadow);
	--bl-shadow-teal: var(--legacy-shadow-teal);
	--bl-panel-width: 300px;
	--bl-header-height: 76px;
	--bl-font-heading: var(--legacy-font-heading);
	--bl-font-body: var(--legacy-font-body);
	--bl-font-signature: var(--legacy-font-signature);
	--bl-transition: var(--legacy-transition);
}

.bl-portal {
	box-sizing: border-box;
	font-family: var(--bl-font-body);
	font-size: 16px;
	line-height: 1.55;
	color: var(--bl-text);
	background:
		radial-gradient(ellipse 120% 80% at 100% 0%, rgba(242, 229, 200, 0.22) 0%, transparent 55%),
		radial-gradient(ellipse 90% 60% at 0% 100%, rgba(13, 96, 118, 0.04) 0%, transparent 50%),
		var(--bl-marble);
	border-radius: var(--bl-radius-lg);
	overflow: hidden;
	position: relative;
	min-height: 80vh;
	display: grid;
	grid-template-columns: var(--bl-sidebar-width) 1fr;
	isolation: isolate;
}

.bl-portal *,
.bl-portal *::before,
.bl-portal *::after {
	box-sizing: inherit;
}

.bl-portal h1,
.bl-portal h2,
.bl-portal h3,
.bl-portal h4,
.bl-portal .bl-section__title,
.bl-portal .bl-card__title,
.bl-portal .bl-panel__title,
.bl-portal .bl-header__title {
	font-family: var(--bl-font-heading);
	font-weight: 500;
	line-height: 1.25;
	margin: 0;
	letter-spacing: 0.06em;
	color: var(--bl-teal);
}

.bl-portal p {
	margin: 0;
}

.bl-portal button {
	font-family: inherit;
	cursor: pointer;
	border: none;
	background: none;
	color: inherit;
}

.bl-portal svg {
	display: block;
	width: 20px;
	height: 20px;
}

/* --------------------------------------------------------------------------
   Overlay (mobile sidebar)
   -------------------------------------------------------------------------- */
.bl-portal__overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.65);
	backdrop-filter: blur(4px);
	z-index: 90;
	opacity: 0;
	transition: opacity var(--bl-transition);
	pointer-events: none;
}

.bl-portal__overlay[hidden] {
	display: none !important;
	pointer-events: none !important;
}

.bl-portal__overlay.is-visible {
	opacity: 1;
	pointer-events: auto;
}

/* --------------------------------------------------------------------------
   Sidebar
   -------------------------------------------------------------------------- */
.bl-portal__sidebar {
	background: linear-gradient(180deg, var(--bl-teal) 0%, var(--bl-teal-deep) 100%);
	border-right: none;
	box-shadow: var(--bl-shadow-teal);
	position: relative;
	z-index: 100;
	overflow-y: auto;
	overflow-x: hidden;
	color: var(--bl-text-on-dark);
}

.bl-sidebar {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	height: 100%;
	padding: 1.5rem 1rem;
	overflow: hidden;
}

.bl-sidebar__nav {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: rgba(200, 154, 61, 0.45) transparent;
}

.bl-sidebar__nav::-webkit-scrollbar {
	width: 4px;
}

.bl-sidebar__nav::-webkit-scrollbar-thumb {
	background: rgba(200, 154, 61, 0.45);
	border-radius: 4px;
}

.bl-sidebar__brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0 0.5rem 1.5rem;
	border-bottom: 1px solid rgba(200, 154, 61, 0.35);
	margin-bottom: 1.25rem;
}

.bl-sidebar__logo {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid rgba(200, 154, 61, 0.55);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
	background: #000;
}

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

.bl-sidebar__brand-name {
	display: block;
	font-family: var(--bl-font-heading);
	font-size: 0.95rem;
	color: var(--bl-champagne);
	white-space: nowrap;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bl-sidebar__brand-tag {
	display: block;
	font-size: 0.62rem;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: rgba(245, 243, 239, 0.72);
	white-space: nowrap;
}

.bl-sidebar__close {
	display: none;
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	color: var(--bl-text-muted);
	border-radius: var(--bl-radius-sm);
}

.bl-sidebar__close:hover {
	background: rgba(255, 255, 255, 0.08);
	color: var(--bl-text-on-dark);
}

.bl-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.bl-nav-list__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0.75rem 0.875rem;
	border-radius: var(--bl-radius-sm);
	color: rgba(245, 243, 239, 0.78);
	font-size: 0.875rem;
	font-weight: 400;
	text-align: left;
	transition: background var(--bl-transition), color var(--bl-transition);
	white-space: nowrap;
	min-height: 44px;
}

.bl-nav-list__link:hover {
	background: rgba(255, 255, 255, 0.08);
	color: var(--bl-text-on-dark);
}

.bl-nav-list__link.is-active {
	background: rgba(200, 154, 61, 0.18);
	color: var(--bl-champagne);
	border: 1px solid rgba(200, 154, 61, 0.45);
}

.bl-nav-list__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	opacity: 0.85;
}

.bl-nav-list__link.is-active .bl-nav-list__icon {
	color: var(--bl-gold);
}

.bl-nav-list__item--logout {
	margin-top: 0.35rem;
	padding-top: 0.35rem;
	border-top: 1px solid rgba(200, 154, 61, 0.28);
}

.bl-nav-list__link--logout {
	color: rgba(245, 243, 239, 0.88);
}

.bl-nav-list__link--logout:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.bl-sidebar__footer {
	flex-shrink: 0;
	margin-top: 0;
	padding: 0.75rem 0.5rem 0;
	border-top: 1px solid rgba(200, 154, 61, 0.2);
}

.bl-sidebar__footnote {
	font-size: 0.62rem;
	line-height: 1.4;
	color: rgba(245, 243, 239, 0.55);
	letter-spacing: 0.06em;
}

/* Compact desktop sidebar — stacked, centered labels; no clipping */
@media (min-width: 769px) {
	.bl-portal {
		--bl-sidebar-width: 232px;
	}

	.bl-portal__sidebar {
		overflow-y: hidden;
	}

	.bl-sidebar {
		padding: 0.65rem 0.45rem 0.5rem;
		min-height: 100%;
		max-height: 100vh;
		height: 100vh;
		justify-content: flex-start;
	}

	.bl-sidebar__nav {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
	}

	.bl-sidebar__brand {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 0.35rem;
		padding: 0 0.25rem 0.55rem;
		margin-bottom: 0.55rem;
	}

	.bl-sidebar__logo {
		width: 36px;
		height: 36px;
		border-radius: 6px;
	}

	.bl-sidebar__brand-name {
		font-size: 0.68rem;
		letter-spacing: 0.08em;
	}

	.bl-sidebar__brand-tag {
		font-size: 0.5rem;
		letter-spacing: 0.1em;
	}

	.bl-nav-list {
		gap: 0.12rem;
	}

	.bl-nav-list__link {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
		padding: 0.38rem 0.3rem;
		font-size: 0.58rem;
		font-weight: 500;
		min-height: 0;
		gap: 0.2rem;
		line-height: 1.2;
		white-space: normal;
		letter-spacing: 0.05em;
	}

	.bl-nav-list__label {
		display: block;
		max-width: 100%;
		line-height: 1.15;
	}

	.bl-nav-list__icon svg {
		width: 14px;
		height: 14px;
	}

	.bl-sidebar__footer {
		display: block;
		flex-shrink: 0;
		padding-top: 0.75rem;
	}
}

/* --------------------------------------------------------------------------
   Main layout
   -------------------------------------------------------------------------- */
.bl-portal__main {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background:
		radial-gradient(ellipse at 90% 0%, var(--bl-teal-glow) 0%, transparent 45%),
		linear-gradient(180deg, var(--bl-marble) 0%, var(--bl-off-white) 100%);
}

.bl-portal__surface {
	position: relative;
}

.bl-portal__surface::before {
	content: "";
	pointer-events: none;
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(
			135deg,
			rgba(255, 255, 255, 0.02) 0,
			rgba(255, 255, 255, 0.02) 1px,
			transparent 1px,
			transparent 10px
		);
	opacity: 0.28;
	z-index: 0;
}

.bl-portal__surface > * {
	position: relative;
	z-index: 1;
}

.bl-portal__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--bl-panel-width);
	flex: 1;
	min-height: 0;
}

.bl-portal__content {
	grid-column: 1;
	padding: 1.5rem 2rem 2rem;
	overflow-y: auto;
	overflow-x: hidden;
	min-width: 0;
	pointer-events: auto;
}

.bl-portal__panel {
	grid-column: 2;
	grid-row: 1;
	border-left: 1px solid var(--bl-border-subtle);
	background: var(--bl-off-white);
	overflow-y: auto;
	overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.bl-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 2rem;
	min-height: var(--bl-header-height);
	border-bottom: 1px solid rgba(200, 154, 61, 0.2);
	background: rgba(252, 251, 249, 0.94);
	backdrop-filter: blur(14px);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
	flex-shrink: 0;
}

.bl-header__left {
	display: flex;
	align-items: center;
	gap: 1rem;
	min-width: 0;
}

.bl-header__menu-btn {
	display: none;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: var(--bl-radius-sm);
	border: 1px solid var(--bl-border-subtle);
	flex-shrink: 0;
}

.bl-header__menu-btn:hover {
	border-color: var(--bl-border);
	background: var(--bl-border-subtle);
}

.bl-header__menu-icon {
	display: block;
	width: 18px;
	height: 2px;
	background: var(--bl-gold);
	position: relative;
}

.bl-header__menu-icon::before,
.bl-header__menu-icon::after {
	content: "";
	position: absolute;
	left: 0;
	width: 18px;
	height: 2px;
	background: var(--bl-gold);
}

.bl-header__menu-icon::before {
	top: -6px;
}

.bl-header__menu-icon::after {
	top: 6px;
}

.bl-header__welcome {
	min-width: 0;
}

.bl-header__eyebrow {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--bl-gold);
	margin-bottom: 0.25rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bl-header__title {
	font-size: clamp(1.25rem, 2.5vw, 1.65rem);
	color: var(--bl-teal);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bl-header__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

.bl-header__signout {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0.5rem 0.85rem;
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
	border: 1px solid rgba(26, 95, 92, 0.25) !important;
	background: #fff !important;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.bl-header__signout:hover {
	border-color: var(--bl-teal) !important;
	background: var(--bl-pearl) !important;
}

.bl-header__panel-toggle {
	display: none;
}

.bl-header__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--bl-teal) 0%, var(--bl-teal-deep) 100%);
	border: 1px solid var(--bl-border);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bl-font-heading);
	font-size: 1rem;
	color: var(--bl-gold-light);
}

/* --------------------------------------------------------------------------
   Right panel
   -------------------------------------------------------------------------- */
.bl-panel {
	padding: 1.5rem;
}

.bl-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.25rem;
}

.bl-panel__title {
	font-size: 1.15rem;
	color: var(--bl-teal);
}

.bl-panel__close {
	display: none;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	color: var(--bl-text-muted);
	border-radius: var(--bl-radius-sm);
}

.bl-panel__subtitle {
	font-family: var(--bl-font-heading);
	font-size: 0.95rem;
	color: var(--bl-text-muted);
	margin: 0 0 0.75rem;
}

.bl-panel__divider {
	height: 1px;
	background: var(--bl-border-subtle);
	margin: 1.25rem 0;
}

.bl-panel__actions {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.bl-panel__actions .bl-btn {
	width: 100%;
	justify-content: center;
	min-height: 2.25rem;
	padding: 0.45rem 0.85rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: none;
}

.bl-panel__actions .bl-btn--outline {
	border: 1px solid var(--bl-teal);
	background: #fff;
	color: var(--bl-teal);
	box-shadow: none;
}

.bl-panel__actions .bl-btn--outline:hover,
.bl-panel__actions .bl-btn--outline:focus-visible {
	background: rgba(13, 96, 118, 0.06);
	color: var(--bl-teal-deep);
}

.bl-summary-card {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 0.875rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-summary-card:last-of-type {
	border-bottom: none;
}

.bl-summary-card--highlight {
	background: var(--bl-gold-muted);
	margin: 0 -0.75rem;
	padding: 0.875rem 0.75rem;
	border-radius: var(--bl-radius-sm);
	border-bottom: none;
}

.bl-summary-card__label {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--bl-teal);
}

.bl-summary-card__value {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--bl-charcoal);
}

.bl-summary-card__value--muted {
	color: var(--bl-text-muted);
}

.bl-summary-card__value--gold {
	font-family: var(--bl-font-heading);
	font-size: 1.25rem;
	color: var(--bl-teal-deep);
}

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.bl-section[hidden] {
	display: none !important;
}

.bl-portal:not(.is-section-ready) .bl-portal__content {
	visibility: hidden;
}

.bl-portal.is-section-ready .bl-portal__content {
	visibility: visible;
	pointer-events: auto;
}

#bl-section-event-planner:not([hidden]) {
	pointer-events: auto !important;
	visibility: visible !important;
}

#bl-section-event-planner:not([hidden]) .bl-planner-book,
#bl-section-event-planner:not([hidden]) .bl-planner-horiz-tabs,
#bl-section-event-planner:not([hidden]) .bl-planner-draw-tools,
#bl-section-event-planner:not([hidden]) .bl-planner-toolbar--book,
#bl-section-event-planner:not([hidden]) .bl-planner-book__nav,
#bl-section-event-planner:not([hidden]) .bl-planner-export,
#bl-section-event-planner:not([hidden]) .bl-sticker-palette__item,
#bl-section-event-planner:not([hidden]) .bl-planner-book__tab,
#bl-section-event-planner:not([hidden]) .bl-planner-horiz-tab,
#bl-section-event-planner:not([hidden]) .bl-planner-book__turn,
#bl-section-event-planner:not([hidden]) .bl-planner-book__curl,
#bl-section-event-planner:not([hidden]) .bl-planner-draw-tool,
#bl-section-event-planner:not([hidden]) .bl-planner-tool-btn,
#bl-section-event-planner:not([hidden]) .bl-planner-year-pill,
#bl-section-event-planner:not([hidden]) .bl-planner-text-color,
#bl-section-event-planner:not([hidden]) .bl-planner-highlight-color,
#bl-section-event-planner:not([hidden]) .bl-planner-book__cover-open,
#bl-section-event-planner:not([hidden]) .bl-planner-draw-color,
#bl-section-event-planner:not([hidden]) .bl-planner-workspace,
#bl-section-event-planner:not([hidden]) .bl-planner-workspace__elements,
#bl-section-event-planner:not([hidden]) .bl-planner-workspace__draw.is-draw-active,
#bl-section-event-planner:not([hidden]) .bl-planner-el,
#bl-section-event-planner:not([hidden]) .bl-planner-el__text,
#bl-section-event-planner:not([hidden]) .bl-btn,
#bl-section-event-planner:not([hidden]) button {
	pointer-events: auto !important;
	cursor: pointer;
}

#bl-section-event-planner:not([hidden]) input,
#bl-section-event-planner:not([hidden]) select,
#bl-section-event-planner:not([hidden]) label {
	pointer-events: auto !important;
}

#bl-section-event-planner:not([hidden]) .bl-planner-el__text {
	cursor: text !important;
}

#bl-section-event-planner:not([hidden]) .bl-planner-workspace__draw:not(.is-draw-active),
#bl-section-event-planner:not([hidden]) .bl-planner-book__draw-layer:not(.is-draw-active),
#bl-section-event-planner:not([hidden]) .bl-planner-book__canvas:not(.is-drag-over) {
	pointer-events: none !important;
}

.bl-portal__overlay:not(.is-visible) {
	pointer-events: none !important;
}

.bl-section__header {
	margin-bottom: 1.75rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(200, 154, 61, 0.28);
	position: relative;
	text-align: center;
}

.bl-section__header::before {
	content: "";
	position: absolute;
	left: 8%;
	right: 8%;
	bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(200, 154, 61, 0.55), transparent);
}

.bl-section__header::after {
	content: "◆";
	position: absolute;
	left: 50%;
	bottom: -0.55rem;
	transform: translateX(-50%);
	font-size: 0.5rem;
	color: var(--bl-gold);
	background: var(--bl-marble);
	padding: 0 0.65rem;
	line-height: 1;
}

.bl-section__title {
	font-size: clamp(1.2rem, 2.2vw, 1.45rem);
	color: var(--bl-teal);
	margin-bottom: 0.55rem;
	text-align: center;
	text-transform: none;
	letter-spacing: 0.05em;
	font-weight: 500;
}

.bl-section__desc {
	color: var(--bl-text-muted);
	font-size: 0.9375rem;
	max-width: 46ch;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	line-height: 1.6;
}

/* --------------------------------------------------------------------------
   Cards & grids
   -------------------------------------------------------------------------- */
.bl-grid {
	display: grid;
	gap: 1.15rem;
}

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

.bl-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bl-card {
	background: var(--legacy-card-bg);
	border: 1px solid rgba(216, 199, 162, 0.42);
	border-radius: var(--bl-radius);
	padding: 1.5rem 1.65rem;
	box-shadow: var(--bl-shadow);
	position: relative;
}

.bl-card::before,
.bl-card::after {
	content: "";
	position: absolute;
	width: 14px;
	height: 14px;
	border-color: rgba(200, 154, 61, 0.32);
	border-style: solid;
	pointer-events: none;
}

.bl-card::before {
	top: 9px;
	left: 9px;
	border-width: 1px 0 0 1px;
}

.bl-card::after {
	bottom: 9px;
	right: 9px;
	border-width: 0 1px 1px 0;
}

/* Nested / inner cards stay flat — no double corners */
.bl-card .bl-card,
.bl-card .bl-empty-state {
	background: var(--legacy-card-bg-nested);
	box-shadow: none;
	border-color: rgba(216, 199, 162, 0.35);
}

.bl-card .bl-card::before,
.bl-card .bl-card::after,
.bl-card .bl-empty-state::before,
.bl-card .bl-empty-state::after {
	display: none;
}

.bl-card--wide {
	margin-top: 1.5rem;
}

.bl-card__title {
	font-size: 1.1rem;
	color: var(--bl-teal);
	margin-bottom: 0.75rem;
}

.bl-card__text {
	color: var(--bl-text-muted);
	font-size: 0.9rem;
	margin-bottom: 1rem;
}

.bl-stat-card {
	background: linear-gradient(165deg, var(--bl-pearl) 0%, rgba(242, 229, 200, 0.55) 100%);
	border: 1px solid rgba(216, 199, 162, 0.5);
	border-radius: var(--bl-radius);
	padding: 1.35rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	box-shadow: var(--bl-shadow);
}

.bl-event-countdown {
	background: linear-gradient(145deg, rgba(13, 96, 118, 0.08) 0%, rgba(200, 154, 61, 0.12) 100%);
	border-color: rgba(200, 154, 61, 0.45);
}

.bl-event-countdown__header {
	margin-bottom: 1rem;
}

.bl-event-countdown__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
}

.bl-event-countdown__unit {
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(216, 199, 162, 0.55);
	border-radius: var(--bl-radius-sm, 8px);
	padding: 0.85rem 0.5rem;
	text-align: center;
}

.bl-event-countdown__value {
	display: block;
	font-family: var(--bl-font-heading);
	font-size: clamp(1.5rem, 4vw, 2.25rem);
	color: var(--bl-teal);
	line-height: 1.1;
}

.bl-event-countdown__label {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--bl-text-muted);
}

.bl-event-countdown__past {
	margin-top: 0.75rem;
	margin-bottom: 0;
}

.bl-timeline__item--payment.bl-timeline__item--paid .bl-timeline__time {
	color: var(--bl-gold);
}

@media (max-width: 640px) {
	.bl-event-countdown__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.bl-stat-card__label {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--bl-teal);
}

.bl-stat-card__value {
	font-family: var(--bl-font-heading);
	font-size: 1.15rem;
	color: var(--bl-text);
}

.bl-stat-card__value--muted {
	color: var(--bl-text-muted);
	font-family: var(--bl-font-body);
	font-size: 0.95rem;
}

.bl-addon-card {
	background: var(--bl-pearl);
	border: 1px solid rgba(219, 199, 162, 0.4);
	border-radius: var(--bl-radius);
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	transition: border-color var(--bl-transition), box-shadow var(--bl-transition);
	box-shadow: var(--bl-shadow);
}

.bl-addon-card:hover {
	border-color: var(--bl-gold);
	box-shadow: 0 8px 24px rgba(200, 154, 61, 0.12);
}

.bl-addon-card--placeholder {
	border-style: dashed;
	justify-content: center;
	align-items: flex-start;
}

.bl-addon-card__title {
	font-family: var(--bl-font-heading);
	font-size: 1rem;
	color: var(--bl-teal);
}

.bl-addon-card__desc {
	font-size: 0.875rem;
	color: var(--bl-text-muted);
}

.bl-addon-card__price {
	font-size: 0.85rem;
	color: var(--bl-gold);
	margin-top: auto;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.bl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.8rem 1.35rem;
	border-radius: var(--bl-radius-sm);
	font-size: 0.8125rem;
	font-weight: 600;
	transition:
		background var(--bl-transition),
		border-color var(--bl-transition),
		color var(--bl-transition),
		box-shadow var(--bl-transition),
		transform 0.15s ease,
		opacity var(--bl-transition);
	white-space: nowrap;
	letter-spacing: 0.02em;
}

.bl-btn--gold,
.bl-btn--outline {
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.78rem;
}

.bl-btn:focus-visible {
	outline: 2px solid var(--bl-gold);
	outline-offset: 2px;
}

.bl-btn:active:not(:disabled) {
	transform: scale(0.98);
}

.bl-btn--gold {
	background: linear-gradient(145deg, var(--bl-gold-light) 0%, var(--bl-gold) 48%, var(--bl-gold-deep) 100%);
	color: var(--bl-charcoal);
	font-weight: 700;
	border: 1px solid rgba(166, 124, 46, 0.35);
	box-shadow: var(--legacy-shadow-gold);
}

.bl-btn--gold:hover:not(:disabled) {
	background: linear-gradient(145deg, #e8d4a8 0%, var(--bl-gold) 55%, var(--bl-gold-deep) 100%);
	color: var(--bl-charcoal);
	box-shadow: 0 10px 28px rgba(200, 154, 61, 0.32);
}

.bl-btn--gold:active:not(:disabled) {
	box-shadow: 0 4px 12px rgba(200, 154, 61, 0.25);
}

.bl-btn--outline {
	background: transparent;
	border: 1px solid var(--bl-teal);
	color: var(--bl-teal);
}

.bl-btn--outline:hover:not(:disabled) {
	background: rgba(13, 96, 118, 0.08);
	border-color: var(--bl-teal-light);
	color: var(--bl-teal-deep);
}

.bl-btn--ghost {
	background: transparent;
	color: var(--bl-text-muted);
	border: 1px solid transparent;
	text-transform: none;
	letter-spacing: 0.02em;
	font-weight: 500;
	font-size: 0.875rem;
}

.bl-btn--ghost:hover:not(:disabled) {
	color: var(--bl-teal);
	background: rgba(242, 229, 200, 0.35);
	border-color: rgba(200, 154, 61, 0.25);
}

.bl-btn--sm {
	padding: 0.5rem 1rem;
	min-height: 38px;
	font-size: 0.8125rem;
}

.bl-btn--block {
	width: 100%;
}

.bl-btn:disabled,
.bl-btn.is-loading {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.bl-btn.is-loading {
	position: relative;
	color: transparent !important;
}

.bl-btn.is-loading::after {
	content: "";
	position: absolute;
	width: 1.1rem;
	height: 1.1rem;
	border: 2px solid rgba(45, 49, 56, 0.25);
	border-top-color: var(--bl-teal);
	border-radius: 50%;
	animation: bl-btn-spin 0.65s linear infinite;
}

.bl-btn--gold.is-loading::after {
	border-color: rgba(45, 49, 56, 0.2);
	border-top-color: var(--bl-charcoal);
}

@keyframes bl-btn-spin {
	to {
		transform: rotate(360deg);
	}
}

/* --------------------------------------------------------------------------
   Shared UI components (alert, stepper, modal)
   -------------------------------------------------------------------------- */
.bl-alert,
.bl-booking-alert {
	padding: 0.875rem 1rem;
	border-radius: var(--bl-radius-sm);
	margin-bottom: 1rem;
	font-size: 0.875rem;
}

.bl-alert--error,
.bl-booking-alert--error {
	background: rgba(180, 60, 60, 0.15);
	border: 1px solid rgba(180, 60, 60, 0.45);
	color: #8b1a1a;
}

.bl-alert--success,
.bl-booking-alert--success {
	background: rgba(13, 96, 118, 0.1);
	border: 1px solid rgba(13, 96, 118, 0.25);
	color: var(--bl-teal-deep);
}

.bl-alert--info,
.bl-booking-alert--info {
	background: rgba(242, 229, 200, 0.45);
	border: 1px solid rgba(200, 154, 61, 0.28);
	color: var(--bl-charcoal);
}

.bl-stepper--horizontal,
.bl-booking-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-stepper--horizontal .bl-stepper__item,
.bl-booking-steps__item {
	flex-shrink: 0;
	padding: 0.55rem 1rem;
	border-radius: 999px;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background: rgba(245, 243, 239, 0.9);
	color: var(--bl-text-muted);
	border: 1px solid rgba(216, 199, 162, 0.45);
	white-space: nowrap;
	font-weight: 600;
}

.bl-stepper--horizontal .bl-stepper__item.is-active,
.bl-booking-steps__item.is-active {
	background: linear-gradient(145deg, rgba(242, 229, 200, 0.85), rgba(200, 154, 61, 0.22));
	color: var(--bl-teal-deep);
	border: 1px solid var(--bl-border);
	box-shadow: 0 4px 14px rgba(200, 154, 61, 0.15);
}

.bl-stepper--horizontal .bl-stepper__item.is-complete,
.bl-booking-steps__item.is-complete {
	background: rgba(13, 96, 118, 0.08);
	color: var(--bl-teal);
	border-color: rgba(13, 96, 118, 0.2);
}

.bl-stepper--vertical,
.bl-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.bl-stepper--vertical .bl-stepper__item,
.bl-steps__item {
	display: flex;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-stepper--vertical .bl-stepper__item:last-child,
.bl-steps__item:last-child {
	border-bottom: none;
}

.bl-stepper__dot,
.bl-steps__dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px solid var(--bl-border);
	margin-top: 0.35rem;
	flex-shrink: 0;
}

.bl-stepper--vertical .bl-stepper__item--current .bl-stepper__dot,
.bl-steps__item--current .bl-steps__dot {
	background: var(--bl-gold);
	border-color: var(--bl-gold);
	box-shadow: 0 0 12px var(--bl-gold-muted);
}

.bl-stepper--vertical .bl-stepper__item--complete .bl-stepper__dot,
.bl-steps__item--complete .bl-steps__dot {
	background: var(--bl-teal);
	border-color: var(--bl-teal);
}

.bl-stepper--vertical .bl-stepper__item--clickable,
.bl-steps__item--clickable {
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.bl-stepper--vertical .bl-stepper__item--clickable:hover,
.bl-stepper--vertical .bl-stepper__item--clickable:focus-visible,
.bl-steps__item--clickable:hover,
.bl-steps__item--clickable:focus-visible {
	background: var(--bl-surface-muted);
}

.bl-stepper__content strong,
.bl-steps__content strong {
	display: block;
	font-family: var(--bl-font-heading);
	color: var(--bl-text);
	margin-bottom: 0.25rem;
}

.bl-stepper__content p,
.bl-steps__content p {
	font-size: 0.875rem;
	color: var(--bl-text-muted);
}

.bl-stepper__title-row,
.bl-steps__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.bl-stepper__title-row .bl-status-badge,
.bl-steps__title-row .bl-status-badge {
	font-size: 0.6875rem;
	white-space: nowrap;
	margin-bottom: 0;
}

.bl-modal,
.bl-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
}

.bl-modal[hidden],
.bl-drawer[hidden] {
	display: none !important;
}

.bl-modal__backdrop,
.bl-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
	backdrop-filter: blur(4px);
}

.bl-modal__dialog {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(92vw, 520px);
	max-height: min(88vh, 720px);
	background: var(--bl-pearl);
	border: 1px solid rgba(219, 199, 162, 0.45);
	border-radius: var(--bl-radius);
	display: flex;
	flex-direction: column;
	box-shadow: var(--bl-shadow);
	overflow: hidden;
}

.bl-modal--lg .bl-modal__dialog {
	width: min(94vw, 720px);
}

.bl-modal--drawer .bl-modal__dialog,
.bl-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	transform: none;
	width: min(100%, 420px);
	max-height: none;
	border-radius: 0;
	border-left: 1px solid rgba(219, 199, 162, 0.45);
}

.bl-modal__header,
.bl-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-modal__title,
.bl-drawer__title {
	font-family: var(--bl-font-heading);
	font-size: 1.15rem;
	color: var(--bl-teal);
	margin: 0;
}

.bl-modal__close,
.bl-drawer__close {
	width: 40px;
	height: 40px;
	min-height: 40px;
	padding: 0;
	font-size: 1.5rem;
	color: var(--bl-text-muted);
	border-radius: var(--bl-radius-sm);
}

.bl-modal__body,
.bl-drawer__body {
	flex: 1;
	overflow: auto;
	padding: 1rem 1.5rem;
}

.bl-modal--drawer .bl-modal__body {
	padding: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.bl-modal--drawer .bl-drawer__body {
	flex: 1;
	overflow: auto;
	padding: 0 1rem 1rem;
}

.bl-modal__footer,
.bl-drawer__footer {
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--bl-border-subtle);
}

body.bl-modal-open {
	overflow: hidden;
}

.bl-status-badge--muted {
	background: rgba(45, 49, 56, 0.08);
	color: var(--bl-text-muted);
	border: 1px solid rgba(45, 49, 56, 0.12);
}

.bl-status-badge--error {
	background: rgba(180, 60, 60, 0.12);
	color: #8b1a1a;
	border: 1px solid rgba(180, 60, 60, 0.35);
}

.bl-action-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.bl-action-card {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: 1rem 1.1rem;
	border: 1px solid rgba(200, 154, 61, 0.22);
	border-radius: var(--bl-radius-md, 0.5rem);
	background: rgba(255, 255, 255, 0.72);
}

.bl-action-card--featured {
	border-color: var(--bl-gold, #C89A3D);
	box-shadow: 0 8px 24px rgba(200, 154, 61, 0.12);
}

.bl-action-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
}

.bl-action-card__title {
	margin: 0;
	font-size: 0.95rem;
	font-family: var(--bl-font-heading, Cinzel, serif);
	color: var(--bl-charcoal, #2D313B);
}

.bl-action-card__text {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: rgba(45, 49, 56, 0.78);
	flex: 1;
}

.bl-guidance-card {
	border-style: dashed;
}

.bl-guidance-banner {
	margin-bottom: 1rem;
}

.bl-steps__title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.bl-steps__title-row .bl-status-badge {
	font-size: 0.6875rem;
	white-space: nowrap;
}

.bl-timeline__item--journey .bl-timeline__time {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--bl-teal, #0D6076);
	min-width: 7rem;
}

.bl-timeline__divider {
	list-style: none;
	text-align: center;
	margin: 1rem 0;
	color: rgba(45, 49, 56, 0.55);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.bl-timeline__divider span {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	background: rgba(250, 248, 245, 0.9);
}

.bl-portal-notice {
	position: fixed;
	left: 50%;
	bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
	z-index: 12000;
	max-width: min(92vw, 28rem);
	padding: 0.85rem 1.15rem;
	border-radius: var(--bl-radius-md, 0.5rem);
	background: var(--bl-charcoal, #2D313B);
	color: #fff;
	font-size: 0.875rem;
	line-height: 1.45;
	box-shadow: 0 12px 32px rgba(45, 49, 56, 0.28);
	transform: translate(-50%, 120%);
	opacity: 0;
	transition: transform 0.28s ease, opacity 0.28s ease;
	pointer-events: none;
}

.bl-portal-notice.is-visible {
	transform: translate(-50%, 0);
	opacity: 1;
}

.bl-portal-notice--info {
	background: var(--bl-teal, #0D6076);
}

.bl-portal-notice--success {
	background: #1f6b4f;
}

.bl-portal-notice--error {
	background: #8B2942;
}

@media (min-width: 769px) {
	.bl-portal-notice {
		bottom: auto;
		top: calc(5.5rem + env(safe-area-inset-top, 0px));
		transform: translate(-50%, -120%);
	}

	.bl-portal-notice.is-visible {
		transform: translate(-50%, 0);
	}
}

/* --------------------------------------------------------------------------
   Forms (placeholder)
   -------------------------------------------------------------------------- */
.bl-form-placeholder {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bl-form-row {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.bl-label {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--bl-teal);
	font-weight: 600;
}

.bl-input,
.bl-textarea {
	width: 100%;
	padding: 0.85rem 1rem;
	background: var(--bl-pearl);
	border: 1px solid rgba(216, 199, 162, 0.65);
	border-radius: var(--bl-radius-sm);
	color: var(--bl-text);
	font-family: inherit;
	font-size: 0.9375rem;
	min-height: 48px;
	transition: border-color var(--bl-transition), box-shadow var(--bl-transition), background var(--bl-transition);
}

.bl-textarea {
	min-height: 120px;
	resize: vertical;
	line-height: 1.55;
}

.bl-input:hover:not(:disabled),
.bl-textarea:hover:not(:disabled) {
	border-color: rgba(200, 154, 61, 0.55);
}

.bl-input:focus,
.bl-textarea:focus {
	outline: none;
	border-color: var(--bl-gold);
	box-shadow: 0 0 0 3px var(--bl-gold-muted);
	background: #fff;
}

.bl-input:disabled,
.bl-textarea:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.bl-form-actions {
	margin-top: 0.5rem;
}

.bl-form-actions--primary {
	/* Layout — luxury-design-system.css §31.6–31.7 */
}

.bl-help-contact {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.bl-portal-flash {
	padding: 0.875rem 1rem;
	border-radius: var(--bl-radius-sm);
	margin-bottom: 1rem;
	font-size: 0.875rem;
	background: rgba(200, 154, 61, 0.15);
	border: 1px solid rgba(200, 154, 61, 0.35);
	color: #6b4e1a;
}

.bl-idle-warning {
	position: fixed;
	inset: 0;
	z-index: 12000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.bl-idle-warning[hidden] {
	display: none !important;
}

.bl-idle-warning__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 28, 32, 0.72);
}

.bl-idle-warning__card {
	position: relative;
	z-index: 1;
	width: min(100%, 420px);
	padding: 1.5rem;
	border-radius: var(--bl-radius-md);
	background: #fff;
	border: 1px solid rgba(200, 154, 61, 0.35);
	box-shadow: 0 18px 48px rgba(15, 28, 32, 0.28);
	text-align: center;
}

.bl-idle-warning__title {
	margin: 0 0 0.75rem;
	font-family: var(--bl-font-display);
	font-size: 1.25rem;
	color: var(--bl-teal-deep);
}

.bl-idle-warning__text {
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--bl-text-muted);
}

.bl-note {
	font-size: 0.8rem;
	color: var(--bl-text-dim);
	font-style: italic;
	margin-top: 0.5rem;
}

/* --------------------------------------------------------------------------
   Progress, steps, timeline
   -------------------------------------------------------------------------- */
.bl-progress {
	height: 4px;
	background: var(--bl-border-subtle);
	border-radius: 2px;
	overflow: hidden;
	margin-top: 0.25rem;
}

.bl-progress__bar {
	height: 100%;
	background: linear-gradient(90deg, var(--bl-teal) 0%, var(--bl-gold) 100%);
	border-radius: 2px;
}

.bl-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.bl-steps__item {
	display: flex;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-steps__item:last-child {
	border-bottom: none;
}

.bl-steps__dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px solid var(--bl-border);
	margin-top: 0.35rem;
	flex-shrink: 0;
}

.bl-steps__item--current .bl-steps__dot {
	background: var(--bl-gold);
	border-color: var(--bl-gold);
	box-shadow: 0 0 12px var(--bl-gold-muted);
}

.bl-steps__item--clickable {
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.bl-steps__item--clickable:hover,
.bl-steps__item--clickable:focus-visible {
	background: var(--bl-surface-muted);
}

.bl-steps__item--clickable:focus-visible {
	outline: 2px solid var(--bl-gold);
	outline-offset: 2px;
}

.bl-portal-step-bar {
	background: linear-gradient(180deg, rgba(250, 248, 245, 0.98), rgba(247, 242, 234, 0.98));
	border: 1px solid rgba(200, 154, 61, 0.28);
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	margin-bottom: 0.85rem;
	padding: 0.65rem 0.85rem;
	position: relative;
	z-index: 3;
}

.bl-portal-step-bar__label {
	color: var(--bl-teal, #0D6076);
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	width: 100%;
}

.bl-portal-step-bar__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	width: 100%;
}

.bl-portal-step-bar__btn {
	background: #fff;
	border: 1px solid rgba(13, 96, 118, 0.16);
	border-radius: 999px;
	color: var(--bl-charcoal, #2D313B);
	cursor: pointer;
	font-family: var(--bl-font-body, Montserrat, sans-serif);
	font-size: 0.78rem;
	font-weight: 600;
	min-height: 36px;
	padding: 0.35rem 0.85rem;
	pointer-events: auto;
}

.bl-portal-step-bar__btn:hover,
.bl-portal-step-bar__btn:focus-visible {
	border-color: rgba(200, 154, 61, 0.55);
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.12);
}

.bl-dashboard-quick-links,
.bl-proposal-quick-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.bl-proposal-quick-nav {
	margin-top: 0.5rem;
}

#bl-dashboard-quick-links .bl-card__text {
	margin-bottom: 0.35rem;
}

.bl-steps__content strong {
	display: block;
	font-family: var(--bl-font-heading);
	color: var(--bl-text);
	margin-bottom: 0.25rem;
}

.bl-steps__content p {
	font-size: 0.875rem;
	color: var(--bl-text-muted);
}

.bl-booking-flow {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.bl-booking-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-booking-steps__item {
	flex-shrink: 0;
	padding: 0.55rem 1rem;
	border-radius: 999px;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background: rgba(245, 243, 239, 0.9);
	color: var(--bl-text-muted);
	border: 1px solid rgba(216, 199, 162, 0.45);
	white-space: nowrap;
	font-weight: 600;
}

.bl-booking-steps__item.is-active {
	background: linear-gradient(145deg, rgba(242, 229, 200, 0.85), rgba(200, 154, 61, 0.22));
	color: var(--bl-teal-deep);
	border: 1px solid var(--bl-border);
	box-shadow: 0 4px 14px rgba(200, 154, 61, 0.15);
}

.bl-booking-steps__item.is-complete {
	background: rgba(13, 96, 118, 0.08);
	color: var(--bl-teal);
	border-color: rgba(13, 96, 118, 0.2);
}

.bl-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bl-timeline__item {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-timeline__item:last-child {
	border-bottom: none;
}

.bl-timeline__time {
	font-size: 0.75rem;
	color: var(--bl-gold);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding-top: 0.15rem;
	white-space: nowrap;
}

.bl-timeline__content strong {
	display: block;
	font-family: var(--bl-font-heading);
	margin-bottom: 0.25rem;
}

.bl-timeline__content p {
	font-size: 0.875rem;
	color: var(--bl-text-muted);
}

/* --------------------------------------------------------------------------
   Empty states, lists, badges
   -------------------------------------------------------------------------- */
.bl-empty-state {
	text-align: center;
	padding: 2.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.bl-empty-state--compact {
	padding: 2rem 1.25rem;
}

.bl-empty-state__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--bl-gold-muted);
	color: var(--bl-gold);
	margin-bottom: 1rem;
}

.bl-empty-state__icon svg {
	width: 24px;
	height: 24px;
}

.bl-empty-state__title {
	font-family: var(--bl-font-heading);
	font-size: 1rem;
	color: var(--bl-text);
	margin-bottom: 0.5rem;
	text-align: center;
	width: 100%;
}

.bl-empty-state__text {
	color: var(--bl-text-muted);
	font-size: 0.875rem;
	margin-bottom: 1.25rem;
	max-width: 34ch;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.bl-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bl-list__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
	font-size: 0.9rem;
	gap: 1rem;
}

.bl-list__item span {
	color: var(--bl-text-muted);
}

.bl-list__item strong {
	color: var(--bl-teal);
	font-weight: 500;
	white-space: nowrap;
}

.bl-status-badge {
	display: inline-block;
	padding: 0.4rem 0.85rem;
	border-radius: 999px;
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin-bottom: 1rem;
}

.bl-status-badge--pending {
	background: rgba(242, 229, 200, 0.55);
	color: var(--bl-teal);
	border: 1px solid rgba(200, 154, 61, 0.28);
}

.bl-messages__thread {
	min-height: 200px;
	margin-bottom: 1rem;
}

.bl-messages__compose {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	border-top: 1px solid var(--bl-border-subtle);
	padding-top: 1rem;
}

/* --------------------------------------------------------------------------
   Mobile navigation
   -------------------------------------------------------------------------- */
.bl-portal__mobile-nav {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 100;
	padding: 0 0.5rem calc(0.35rem + env(safe-area-inset-bottom, 0));
	background: transparent;
	border: 0;
	pointer-events: none;
}

.bl-portal__mobile-nav::before {
	background: linear-gradient(180deg, transparent 0%, rgba(250, 248, 245, 0.92) 72%);
	bottom: calc(var(--bl-mobile-nav-height) - 8px);
	content: '';
	height: 56px;
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
}

.bl-mobile-nav {
	align-items: stretch;
	background:
		linear-gradient(180deg, rgba(6, 48, 58, 0.99) 0%, rgba(13, 96, 118, 1) 55%, rgba(10, 74, 92, 1) 100%);
	border: 1px solid rgba(200, 154, 61, 0.52);
	border-bottom: 0;
	border-radius: 24px 24px 0 0;
	box-shadow:
		0 -14px 44px rgba(13, 96, 118, 0.45),
		0 -2px 0 rgba(200, 154, 61, 0.22),
		inset 0 1px 0 rgba(255, 255, 255, 0.14);
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	min-height: var(--bl-mobile-nav-height);
	overflow: hidden;
	pointer-events: auto;
	position: relative;
}

.bl-mobile-nav::before {
	background: linear-gradient(90deg, transparent, rgba(200, 154, 61, 0.55), transparent);
	content: '';
	height: 1px;
	left: 8%;
	position: absolute;
	right: 8%;
	top: 0;
}

.bl-mobile-nav__item {
	align-items: center;
	background: transparent;
	border: 0;
	color: rgba(255, 255, 255, 0.88);
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	justify-content: center;
	min-height: var(--bl-mobile-nav-height);
	min-width: 0;
	padding: 0.55rem 0.2rem 0.7rem;
	position: relative;
	transition: color var(--bl-transition), transform 0.15s ease;
}

.bl-mobile-nav__item:active {
	transform: scale(0.96);
}

.bl-mobile-nav__item.is-active {
	color: #fff;
}

.bl-mobile-nav__item.is-active::after {
	background: linear-gradient(90deg, transparent, var(--bl-gold), transparent);
	border-radius: 999px;
	content: '';
	height: 3px;
	left: 18%;
	position: absolute;
	right: 18%;
	top: 0;
}

.bl-mobile-nav__icon-wrap {
	align-items: center;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 15px;
	display: flex;
	height: 44px;
	justify-content: center;
	transition: background var(--bl-transition), border-color var(--bl-transition), box-shadow var(--bl-transition);
	width: 44px;
}

.bl-mobile-nav__item.is-active .bl-mobile-nav__icon-wrap {
	background: linear-gradient(145deg, rgba(200, 154, 61, 0.38), rgba(200, 154, 61, 0.12));
	border-color: rgba(200, 154, 61, 0.55);
	box-shadow: 0 4px 14px rgba(200, 154, 61, 0.22);
}

.bl-mobile-nav__icon {
	display: flex;
	line-height: 0;
}

.bl-mobile-nav__icon svg {
	height: 24px;
	margin: 0;
	stroke: currentColor;
	width: 24px;
}

.bl-mobile-nav__label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.15;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
	text-transform: uppercase;
	white-space: nowrap;
}

.bl-mobile-nav__item--more .bl-mobile-nav__icon-wrap {
	background: rgba(200, 154, 61, 0.12);
	border-color: rgba(200, 154, 61, 0.28);
}

/* --------------------------------------------------------------------------
   Responsive — Tablet
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.bl-portal__body {
		grid-template-columns: minmax(0, 1fr);
	}

	.bl-portal__content {
		grid-column: 1;
	}

	.bl-portal__panel {
		display: none;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: min(100%, 320px);
		z-index: 95;
		box-shadow: var(--bl-shadow);
		transform: translateX(100%);
		transition: transform var(--bl-transition);
	}

	.bl-portal__panel.is-open {
		display: block;
		transform: translateX(0);
	}

	.bl-header__panel-toggle {
		display: inline-flex;
	}

	.bl-panel__close {
		display: flex;
	}

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

/* --------------------------------------------------------------------------
   Responsive — Mobile
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.bl-portal {
		grid-template-columns: 1fr;
		min-height: 100vh;
		border-radius: 0;
	}

	.bl-portal__sidebar {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		width: min(100%, 300px);
		transform: translateX(-100%);
		transition: transform var(--bl-transition);
		box-shadow: var(--bl-shadow);
	}

	.bl-portal__sidebar.is-open {
		transform: translateX(0);
	}

	.bl-sidebar__close {
		display: flex;
	}

	.bl-header {
		padding: 0.75rem 1rem;
		gap: 0.5rem;
	}

	.bl-header__actions {
		gap: 0.35rem;
	}

	.bl-header__actions .bl-btn--sm {
		padding: 0.4rem 0.65rem;
		font-size: 0.75rem;
		min-height: 0;
	}

	.bl-header__welcome {
		display: none;
	}

	.bl-header__menu-btn {
		display: flex;
	}

	.bl-header__title {
		font-size: 1.15rem;
	}

	.bl-header__actions .bl-btn--ghost:not(.bl-header__panel-toggle):not(.bl-header__signout) {
		display: none;
	}

	.bl-portal__content {
		padding: 1rem 1rem calc(var(--bl-mobile-nav-height) + 1.25rem);
	}

	.bl-portal-step-bar {
		border-radius: 14px;
		margin-bottom: 0.75rem;
		padding: 0.55rem 0.65rem;
	}

	.bl-portal-step-bar__btn {
		font-size: 0.72rem;
		min-height: 38px;
		padding: 0.4rem 0.7rem;
	}

	.bl-portal__mobile-nav {
		display: block;
	}

	.bl-grid--2,
	.bl-grid--3 {
		grid-template-columns: 1fr;
	}

	/* Mobile action bars — canonical rules in luxury-design-system.css (§31.6–31.7) */

	.bl-save-later-done__actions {
		flex-direction: column;
	}

	.bl-save-later-done__actions .bl-btn {
		width: 100%;
	}

	.bl-booking-steps {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 0.45rem;
		padding-bottom: 0.35rem;
		margin-bottom: 0.25rem;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.bl-booking-steps__item {
		scroll-snap-align: start;
	}

	.bl-booking-steps::-webkit-scrollbar {
		display: none;
	}

	.bl-booking-readonly-banner,
	.bl-booking-revise-banner {
		padding: 0.75rem 0.85rem;
		margin-bottom: 0.75rem;
	}

	.bl-auth-gate__alert--success strong {
		display: block;
		font-family: var(--legacy-font-heading);
		color: var(--legacy-teal);
		letter-spacing: 0.04em;
	}

	.bl-auth-gate__alert--success p {
		margin: 0.35rem 0 0;
		line-height: 1.55;
	}

	.bl-timeline__item {
		grid-template-columns: 1fr;
		gap: 0.35rem;
	}
}

/* Prevent horizontal overflow globally within portal */
@media (max-width: 768px) {
	.bl-portal,
	.bl-portal__main,
	.bl-portal__body,
	.bl-portal__content {
		max-width: 100%;
		overflow-x: hidden;
	}

	.bl-section__title,
	.bl-section__desc,
	.bl-card__title,
	.bl-card__text,
	.bl-nav-list__label,
	.bl-mobile-nav__label,
	.bl-header__title,
	.bl-header__eyebrow {
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: auto;
	}
}

/* --------------------------------------------------------------------------
   Booking flow (Milestone 2)
   -------------------------------------------------------------------------- */
.bl-booking-step[hidden] {
	display: none !important;
}

.bl-booking-flow.is-loading {
	opacity: 0.65;
	pointer-events: none;
}

.bl-booking-load {
	padding: 2rem 1.5rem;
	text-align: center;
	border: 1px solid var(--bl-border-subtle);
	border-radius: var(--bl-radius-md);
	background: var(--bl-marble, #faf8f5);
	margin-bottom: 1rem;
}

.bl-booking-load.is-loading .bl-booking-load__message::after {
	content: '';
	display: inline-block;
	width: 0.9em;
	animation: bl-booking-load-dots 1.2s steps(4, end) infinite;
}

@keyframes bl-booking-load-dots {
	0% { content: ''; }
	25% { content: '.'; }
	50% { content: '..'; }
	75% { content: '...'; }
}

.bl-booking-load.is-error {
	border-color: rgba(180, 60, 60, 0.45);
	background: rgba(180, 60, 60, 0.08);
}

.bl-booking-load__message {
	margin: 0 0 1rem;
	color: var(--bl-charcoal, #2d313b);
	font-size: 0.9375rem;
}

.bl-booking-load.is-error .bl-booking-load__message {
	color: #8b3030;
}

.bl-booking-steps__item {
	cursor: pointer;
	border: none;
	background: var(--bl-border-subtle);
	font-family: inherit;
}

.bl-booking-steps__item.is-complete {
	color: var(--bl-gold);
	border: 1px solid var(--bl-border);
}

.bl-booking-alert {
	padding: 0.875rem 1rem;
	border-radius: var(--bl-radius-sm);
	margin-bottom: 1rem;
	font-size: 0.875rem;
}

.bl-booking-alert--error {
	background: rgba(180, 60, 60, 0.15);
	border: 1px solid rgba(180, 60, 60, 0.45);
	color: #8b1a1a;
}

.bl-input--needs-value {
	border-color: rgba(180, 60, 60, 0.75) !important;
	box-shadow: 0 0 0 2px rgba(180, 60, 60, 0.15);
}

.bl-event-time-hint {
	margin-top: 0.35rem;
}

.bl-booking-alert--success {
	background: rgba(13, 96, 118, 0.1);
	border: 1px solid rgba(13, 96, 118, 0.25);
	color: var(--bl-teal-deep);
}

.bl-save-later-done {
	padding: 1.5rem;
	margin-bottom: 1.25rem;
	border-radius: var(--bl-radius);
	background: linear-gradient(180deg, #fff 0%, var(--bl-pearl) 100%);
	border: 1px solid rgba(200, 154, 61, 0.35);
	box-shadow: var(--bl-shadow);
	text-align: center;
}

.bl-save-later-done__icon {
	width: 3rem;
	height: 3rem;
	margin: 0 auto 1rem;
	border-radius: 50%;
	background: rgba(200, 154, 61, 0.15);
	border: 2px solid var(--bl-gold);
	position: relative;
}

.bl-save-later-done__icon::before {
	content: '✓';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--bl-gold-deep);
}

.bl-save-later-done__title {
	margin: 0 0 0.5rem;
	font-family: var(--bl-font-heading);
	font-size: 1.25rem;
	color: var(--bl-teal-deep);
}

.bl-save-later-done__text {
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	color: var(--bl-text-muted);
	line-height: 1.5;
}

.bl-save-later-done__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}

.bl-booking-tabs {
	display: flex;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.bl-booking-tabs__btn {
	flex: 1;
	padding: 0.625rem 1rem;
	border-radius: var(--bl-radius-sm);
	background: var(--bl-border-subtle);
	color: var(--bl-text-muted);
	font-size: 0.875rem;
	min-height: 44px;
}

.bl-booking-tabs__btn.is-active {
	background: var(--bl-gold-muted);
	color: var(--bl-teal-deep);
	border: 1px solid var(--bl-border);
}

.bl-booking-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bl-booking-form[hidden],
.bl-booking-logged-in[hidden] {
	display: none !important;
}

.bl-select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23c89a3d' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
}

.bl-event-type-grid {
	display: grid;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	gap: 0.75rem;
}

@media (min-width: 640px) {
	.bl-event-type-grid {
		grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	}
}

.bl-event-type-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	min-height: 56px;
	padding: 0.85rem 0.75rem;
	background: var(--bl-pearl);
	border: 2px solid rgba(219, 199, 162, 0.55);
	border-radius: var(--bl-radius-sm);
	color: var(--bl-teal);
	font-family: var(--bl-font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.35;
	text-align: center;
	cursor: pointer;
	transition: border-color var(--bl-transition), box-shadow var(--bl-transition), background var(--bl-transition), transform var(--bl-transition);
	box-shadow: none;
}

.bl-event-type-card:hover {
	border-color: var(--bl-gold);
	box-shadow: 0 0 0 1px var(--bl-gold-muted);
	background: #fff;
}

.bl-event-type-card.is-selected {
	border-color: var(--bl-gold);
	background: linear-gradient(180deg, #fff 0%, rgba(200, 154, 61, 0.12) 100%);
	box-shadow: 0 0 0 2px var(--bl-gold-muted), 0 6px 18px rgba(200, 154, 61, 0.18);
	transform: translateY(-1px);
	color: var(--bl-teal-deep);
}

.bl-event-type-card__check {
	position: absolute;
	top: 0.45rem;
	right: 0.45rem;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--bl-gold);
	color: var(--bl-charcoal);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(200, 154, 61, 0.35);
}

.bl-event-type-card__check::before {
	content: '✓';
}

.bl-event-type-card__label {
	display: block;
	max-width: 100%;
	text-transform: none;
	letter-spacing: 0.02em;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: manual;
}

.bl-event-type-grid--prompt {
	position: relative;
	padding: 0.35rem;
	border-radius: var(--bl-radius-sm);
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.45);
	animation: bl-event-type-prompt 2.2s ease-in-out infinite;
}

.bl-event-type-grid--prompt .bl-event-type-card {
	border-color: rgba(200, 154, 61, 0.75);
}

@keyframes bl-event-type-prompt {
	0%,
	100% {
		box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.35);
	}
	50% {
		box-shadow: 0 0 0 4px rgba(200, 154, 61, 0.55), 0 8px 24px rgba(200, 154, 61, 0.15);
	}
}

.bl-calendar--locked {
	opacity: 0.55;
	pointer-events: none;
	filter: grayscale(0.15);
}

.bl-proposal-loading .bl-empty-state__title {
	color: var(--bl-teal);
}

.bl-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-size: 0.875rem;
	color: var(--bl-text-muted);
	cursor: pointer;
}

.bl-checkbox input {
	margin-top: 0.25rem;
	accent-color: var(--bl-gold);
	flex-shrink: 0;
	width: 18px;
	height: 18px;
}

.bl-form-actions--between {
	justify-content: space-between;
	align-items: center;
}

.bl-booking-user-email {
	color: var(--bl-gold);
	font-size: 0.9rem;
	margin-bottom: 1rem;
}

#bl-package-grid {
	display: block;
}

.bl-package-intro {
	margin: -0.25rem 0 1.25rem;
	text-align: center;
	color: var(--bl-text-muted);
	font-size: 0.9375rem;
	line-height: 1.55;
}

.bl-package-group {
	margin-bottom: 2rem;
}

.bl-package-group__title {
	margin: 0 0 0.85rem;
	font-family: var(--bl-font-display);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	color: var(--bl-teal-deep);
}

.bl-package-grid--group {
	margin-bottom: 0;
}

.bl-package-grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) );
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.bl-package-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	position: relative;
	width: 100%;
	padding: 1.25rem 1.15rem;
	background: linear-gradient(165deg, var(--bl-pearl) 0%, rgba(242, 229, 200, 0.18) 100%);
	border: 1px solid rgba(216, 199, 162, 0.5);
	border-radius: var(--bl-radius);
	text-align: left;
	cursor: pointer;
	font: inherit;
	color: inherit;
	transition: border-color var(--bl-transition), box-shadow var(--bl-transition), background var(--bl-transition), transform var(--bl-transition);
	min-height: 44px;
	box-shadow: var(--bl-shadow);
}

.bl-package-card:hover {
	border-color: var(--bl-gold);
	box-shadow: 0 0 0 1px var(--bl-gold-muted);
}

.bl-package-card.is-selected {
	border-color: var(--bl-gold);
	background: linear-gradient(180deg, #fff 0%, rgba(200, 154, 61, 0.08) 100%);
	box-shadow: 0 0 0 2px var(--bl-gold-muted), 0 8px 24px rgba(200, 154, 61, 0.15);
	transform: translateY(-1px);
}

.bl-package-card__check {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: var(--bl-gold);
	color: var(--bl-charcoal);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 2px 8px rgba(200, 154, 61, 0.35);
}

.bl-package-card__check::before {
	content: '✓';
}

.bl-package-card.is-selected .bl-package-card__name {
	color: var(--bl-teal-deep);
}

.bl-package-card__name {
	font-family: var(--bl-font-heading);
	font-size: 1.05rem;
	color: var(--bl-teal);
}

.bl-package-card__desc {
	font-size: 0.8125rem;
	color: var(--bl-text-muted);
	line-height: 1.5;
}

.bl-package-card__meta {
	font-size: 0.75rem;
	color: var(--bl-text-dim);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.bl-package-card__price {
	font-family: var(--bl-font-heading);
	font-size: 1.15rem;
	color: var(--bl-gold);
	margin-top: auto;
}

.bl-selected-addons {
	margin-bottom: 1rem;
}

.bl-selected-addons__title {
	font-family: var(--bl-font-heading);
	font-size: 0.95rem;
	color: var(--bl-text-muted);
	margin-bottom: 0.5rem;
}

.bl-selected-addons__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bl-selected-addons__list li {
	display: flex;
	justify-content: space-between;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
	font-size: 0.875rem;
}

.bl-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
}

.bl-drawer[hidden] {
	display: none !important;
}

.bl-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7);
	backdrop-filter: blur(4px);
}

.bl-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(100%, 420px);
	background: var(--bl-pearl);
	border-left: 1px solid rgba(219, 199, 162, 0.45);
	display: flex;
	flex-direction: column;
	box-shadow: var(--bl-shadow);
}
}

.bl-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-drawer__title {
	font-family: var(--bl-font-heading);
	font-size: 1.15rem;
	color: var(--bl-teal);
}

.bl-drawer__close {
	width: 40px;
	height: 40px;
	font-size: 1.5rem;
	color: var(--bl-text-muted);
	border-radius: var(--bl-radius-sm);
}

.bl-drawer__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0 1rem 0.75rem;
}

.bl-addon-filter {
	border: 1px solid var(--bl-border-subtle);
	background: var(--bl-pearl);
	color: var(--bl-charcoal);
	border-radius: 999px;
	padding: 0.35rem 0.75rem;
	font-size: 0.75rem;
	font-family: inherit;
	cursor: pointer;
	min-height: 32px;
}

.bl-addon-filter.is-active {
	background: var(--bl-teal-deep);
	border-color: var(--bl-teal-deep);
	color: #fff;
}

.bl-addon-group {
	margin-bottom: 1.25rem;
}

.bl-addon-group__title {
	margin: 0 0 0.65rem;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--bl-teal-deep);
}

.bl-drawer-addon__tag {
	display: inline-block;
	margin-left: 0.35rem;
	padding: 0.1rem 0.45rem;
	border-radius: 999px;
	background: rgba(13, 96, 118, 0.1);
	color: var(--bl-teal-deep);
	font-size: 0.68rem;
	font-weight: 600;
	text-transform: uppercase;
	vertical-align: middle;
}

.bl-drawer__search {
	padding: 1rem 1.5rem;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 1rem 1.5rem;
}

.bl-drawer__footer {
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--bl-border-subtle);
	padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0));
}

.bl-drawer-addon {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid var(--bl-border-subtle);
}

.bl-drawer-addon.is-selected {
	background: var(--bl-gold-muted);
	margin: 0 -0.75rem;
	padding: 1rem 0.75rem;
	border-radius: var(--bl-radius-sm);
}

.bl-drawer-addon__info {
	flex: 1;
	min-width: 0;
}

.bl-drawer-addon__info strong {
	display: block;
	font-family: var(--bl-font-heading);
	color: var(--bl-text);
	margin-bottom: 0.25rem;
}

.bl-drawer-addon__info p {
	font-size: 0.8125rem;
	color: var(--bl-text-muted);
	margin-bottom: 0.35rem;
}

.bl-drawer-addon__price {
	font-size: 0.85rem;
	color: var(--bl-gold);
}

.bl-review-list {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 0.5rem 1rem;
	margin: 0 0 1.5rem;
}

.bl-review-list dt {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--bl-text-dim);
}

.bl-review-list dd {
	margin: 0;
	color: var(--bl-text);
}

.bl-list__item--total strong {
	font-family: var(--bl-font-heading);
	font-size: 1.1rem;
	color: var(--bl-teal-deep);
}

.bl-booking-warnings {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0.75rem 1rem;
	background: var(--bl-gold-muted);
	border-radius: var(--bl-radius-sm);
	border: 1px solid var(--bl-border);
}

.bl-booking-warnings li {
	font-size: 0.8125rem;
	color: var(--bl-charcoal);
	padding: 0.25rem 0;
}

@media (max-width: 768px) {
	.bl-drawer__panel {
		width: 100%;
	}

	.bl-form-actions--between {
		flex-direction: column;
		align-items: stretch;
	}

	.bl-form-actions--between .bl-form-actions {
		flex-direction: column;
		width: 100%;
	}

	.bl-form-actions--between .bl-btn {
		width: 100%;
	}

	.bl-review-list {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   Milestone 3 — Messages, questionnaire, profile
   -------------------------------------------------------------------------- */
.bl-message-bubble {
	max-width: 85%;
	padding: 0.875rem 1rem;
	border-radius: var(--bl-radius);
	margin-bottom: 0.75rem;
}

.bl-message-bubble--client {
	margin-left: auto;
	background: var(--bl-gold-muted);
	border: 1px solid var(--bl-border);
}

.bl-message-bubble--admin {
	margin-right: auto;
	background: var(--bl-off-white);
	border: 1px solid rgba(13, 96, 118, 0.15);
}

.bl-message-bubble__author {
	display: block;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bl-gold);
	margin-bottom: 0.35rem;
}

.bl-message-bubble__text {
	font-size: 0.9rem;
	color: var(--bl-text);
	margin: 0;
	white-space: pre-wrap;
	word-break: break-word;
}

.bl-message-bubble__time {
	display: block;
	font-size: 0.7rem;
	color: var(--bl-text-dim);
	margin-top: 0.35rem;
}

.bl-messages__thread {
	max-height: 420px;
	overflow-y: auto;
	padding-right: 0.25rem;
}

.bl-questionnaire-flow {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bl-q-tabs {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.375rem;
	overflow-x: auto;
	padding-bottom: 0.15rem;
	margin-bottom: 0.15rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.bl-q-tabs::-webkit-scrollbar {
	display: none;
}

.bl-q-tabs__item {
	flex: 0 0 auto;
	appearance: none;
	-webkit-appearance: none;
	padding: 0.35rem 0.7rem;
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0.02em;
	line-height: 1.25;
	background: #f3efe8;
	color: var(--bl-text-dim);
	border: 1px solid transparent;
	box-shadow: none;
	min-height: 0;
	min-width: 0;
	cursor: pointer;
	font-family: inherit;
	white-space: nowrap;
}

.bl-q-tabs__item.is-active {
	background: var(--bl-gold-muted);
	color: var(--bl-teal-deep);
	border-color: var(--bl-border);
}

.bl-q-tabs__item.is-complete:not(.is-active) {
	color: var(--bl-gold-deep);
}

.bl-progress--labeled {
	margin-top: 0.5rem;
}

.bl-progress--top {
	margin: 0.75rem 0 0.35rem;
}

.bl-note--center {
	text-align: center;
	margin: 0 0 1rem;
}

.bl-steps__item--complete .bl-steps__dot {
	background: var(--bl-teal);
	border-color: var(--bl-teal);
}

.bl-steps__item--complete strong {
	color: var(--bl-text-muted);
}

.bl-status-badge--success {
	background: rgba(13, 96, 118, 0.12);
	color: var(--bl-teal);
}

.bl-status-badge--due {
	background: var(--bl-gold-muted);
	color: var(--bl-gold-deep);
	border: 1px solid var(--bl-border);
}

.bl-payment-ref,
.bl-payment-deposit-amount {
	font-size: 0.875rem;
	color: var(--bl-text-muted);
	margin: 0.75rem 0;
}

.bl-payment-ref strong,
.bl-payment-deposit-amount strong {
	font-family: var(--bl-font-heading);
	color: var(--bl-teal);
	font-size: 1.05rem;
}

#bl-payment-actions .bl-form-actions {
	margin-top: 1rem;
	flex-wrap: wrap;
}

/* Documents */
.bl-documents__list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.bl-document-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.1rem;
	border: 1px solid rgba(219, 199, 162, 0.45);
	border-radius: var(--bl-radius-sm);
	background: var(--bl-pearl);
}

.bl-document-row__meta {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
}

.bl-document-row__title {
	font-family: var(--bl-font-heading);
	color: var(--bl-teal);
	font-size: 1rem;
}

.bl-document-row__type {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--bl-gold);
}

.bl-document-row__file,
.bl-document-row__date {
	font-size: 0.85rem;
	color: var(--bl-text-muted);
}

.bl-documents__upload {
	padding-top: 1.25rem;
	border-top: 1px solid var(--bl-border);
}

.bl-documents-form .bl-form-row {
	margin-bottom: 1rem;
}

.bl-input--file {
	padding: 0.65rem;
	background: rgba(255, 255, 255, 0.03);
	border: 1px dashed var(--bl-border);
	border-radius: var(--bl-radius-sm);
	color: var(--bl-text-muted);
}

.bl-card__subtitle {
	font-family: var(--bl-font-heading);
	font-size: 1.05rem;
	color: var(--bl-teal);
	margin: 0 0 0.35rem;
}

.bl-form-hint {
	margin: 0 0 1rem;
	font-size: 0.9rem;
	color: var(--bl-text-muted);
}

/* Full-page portal (Elementor Canvas) */
.bl-portal--full {
	min-height: 100vh;
	border-radius: 0;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Public inquiry form — white contact page */
.bl-inquiry--public {
	background: #ffffff;
	color: #1a1a1a;
	padding: 0 2rem 2.5rem;
	border-radius: 12px;
	max-width: 720px;
	width: 100%;
	margin: 0 auto;
	border: 1px solid #e8e8e8;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
	text-align: center;
	font-family: var(--bl-font-body, "Montserrat", sans-serif);
}

.bl-inquiry--public * {
	box-sizing: border-box;
}

.bl-inquiry__hero {
	margin: 0 -2rem 1.5rem;
	border-radius: 12px 12px 0 0;
	overflow: hidden;
	line-height: 0;
}

.bl-inquiry__hero-img {
	display: block;
	width: 100%;
	height: auto;
}

.bl-inquiry__header {
	margin-bottom: 1.5rem;
}

.bl-inquiry__title {
	font-family: var(--bl-font-heading, "Cinzel", Georgia, serif);
	color: #0d6076;
	margin: 0 0 0.5rem;
	letter-spacing: 0.08em;
	font-size: 1.35rem;
	font-weight: 600;
	text-transform: uppercase;
}

.bl-inquiry__desc {
	color: #4b5563;
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.55;
	max-width: 36ch;
	margin-left: auto;
	margin-right: auto;
}

.bl-inquiry__form {
	text-align: left;
	max-width: 560px;
	width: 100%;
	margin: 0 auto;
}

.bl-inquiry__field {
	margin-bottom: 1rem;
}

.bl-inquiry__label {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	color: #1a1a1a;
	margin-bottom: 0.35rem;
	text-align: left;
	letter-spacing: 0.02em;
}

/* Override theme form styles — keep all fields consistent */
#boykin-inquiry .bl-inquiry__input,
#boykin-inquiry .bl-inquiry__textarea {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0.75rem 0.9rem;
	border: 1px solid #d1d5db !important;
	border-radius: 8px !important;
	background: #ffffff !important;
	background-image: none !important;
	box-shadow: none !important;
	color: #1a1a1a !important;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#boykin-inquiry input[type="date"].bl-inquiry__input {
	min-height: 48px;
}

#boykin-inquiry select.bl-inquiry__input {
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234b5563' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.9rem center !important;
	padding-right: 2.25rem !important;
}

.bl-inquiry__input,
.bl-inquiry__textarea {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	background: #ffffff;
	color: #1a1a1a;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#boykin-inquiry .bl-inquiry__input:focus,
#boykin-inquiry .bl-inquiry__textarea:focus,
.bl-inquiry__input:focus,
.bl-inquiry__textarea:focus {
	outline: none;
	border-color: #0d6076 !important;
	box-shadow: 0 0 0 3px rgba(13, 96, 118, 0.12) !important;
}

.bl-inquiry__textarea {
	resize: vertical;
	min-height: 100px;
}

.bl-inquiry__actions {
	text-align: center;
	margin-top: 1.25rem;
}

.bl-inquiry__submit {
	display: inline-block;
	min-width: 200px;
	padding: 0.85rem 2rem;
	border: none;
	border-radius: 8px;
	background: linear-gradient(135deg, #c89a3d 0%, #a67c2e 100%);
	color: #1a1a1a;
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.bl-inquiry__submit:hover:not(:disabled) {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(200, 154, 61, 0.35);
}

.bl-inquiry__submit:disabled {
	opacity: 0.65;
	cursor: wait;
}

.bl-inquiry__alert {
	margin: 0 auto 1.25rem;
	max-width: 560px;
	width: 100%;
	padding: 0.9rem 1rem;
	border-radius: 8px;
	font-size: 0.9rem;
	line-height: 1.5;
	text-align: center;
}

.bl-inquiry__alert.bl-inquiry__alert--success {
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
}

.bl-inquiry__alert.bl-inquiry__alert--error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.bl-inquiry__alert a {
	color: #0d6076;
	font-weight: 600;
	text-decoration: underline;
}

.bl-inquiry__footer {
	margin: 1.5rem auto 0;
	max-width: 52ch;
	width: 100%;
	font-size: 0.85rem;
	line-height: 1.6;
	color: #6b7280;
}

#boykin-inquiry .bl-inquiry__portal-link {
	color: #0d6076 !important;
	font-weight: 600;
	text-decoration: underline !important;
	-webkit-text-fill-color: #0d6076;
}

.bl-inquiry__portal-link {
	color: #0d6076;
	font-weight: 600;
	text-decoration: underline;
}

.bl-inquiry__portal-link:hover {
	color: #c89a3d !important;
	-webkit-text-fill-color: #c89a3d;
}

.bl-inquiry__success {
	max-width: 560px;
	width: 100%;
	margin: 0 auto 1.5rem;
	padding: 1.5rem 1.25rem;
	border-radius: 12px;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	text-align: center;
}

.bl-inquiry__success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: 0.75rem;
	border-radius: 50%;
	background: #10b981;
	color: #ffffff;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}

.bl-inquiry__success-title {
	margin: 0 0 0.5rem;
	font-family: var(--bl-font-heading, "Cinzel", Georgia, serif);
	font-size: 1.25rem;
	color: #065f46;
	letter-spacing: 0.04em;
}

.bl-inquiry__success-text {
	margin: 0 0 1rem;
	color: #047857;
	font-size: 0.95rem;
	line-height: 1.55;
}

.bl-inquiry__success-link {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	background: linear-gradient(135deg, #c89a3d 0%, #a67c2e 100%);
	color: #1a1a1a !important;
	font-weight: 600;
	text-decoration: none !important;
	letter-spacing: 0.04em;
}

.bl-inquiry__success-link:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(200, 154, 61, 0.35);
}

/* Legacy inquiry (if nested in portal) */
.bl-inquiry:not(.bl-inquiry--public) {
	background: var(--bl-marble);
	color: var(--bl-text);
	padding: 2rem;
	border-radius: var(--bl-radius-lg);
	max-width: 640px;
	border: 1px solid rgba(219, 199, 162, 0.45);
	box-shadow: var(--bl-shadow);
}

.bl-inquiry__header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.bl-inquiry__logo {
	display: block;
	width: 80px;
	height: 80px;
	margin: 0 auto 1rem;
	border-radius: 10px;
	border: 1px solid rgba(200, 154, 61, 0.45);
	box-shadow: var(--bl-shadow);
	object-fit: cover;
	background: #000;
}

.bl-inquiry__title {
	font-family: var(--bl-font-heading);
	color: var(--bl-teal);
	margin: 0 0 0.35rem;
	letter-spacing: 0.06em;
}

.bl-inquiry__desc {
	color: var(--bl-text-muted);
	margin: 0 0 1.5rem;
}

/* --------------------------------------------------------------------------
   Contrast — dark text on light surfaces (theme-safe)
   Light/white text only on teal sidebar + mobile nav + avatar
   -------------------------------------------------------------------------- */
.bl-portal .bl-portal__main,
.bl-portal .bl-portal__content,
.bl-portal .bl-portal__panel,
.bl-portal .bl-header,
.bl-portal .bl-inquiry:not(.bl-inquiry--public) {
	color: var(--bl-charcoal);
}

.bl-portal .bl-portal__main h1,
.bl-portal .bl-portal__main h2,
.bl-portal .bl-portal__main h3,
.bl-portal .bl-portal__main h4,
.bl-portal .bl-portal__panel h2,
.bl-portal .bl-portal__panel h3,
.bl-portal .bl-header h1,
.bl-portal .bl-section__title,
.bl-portal .bl-card__title,
.bl-portal .bl-panel__title,
.bl-portal .bl-panel__subtitle,
.bl-portal .bl-stat-card__label {
	color: var(--bl-teal);
}

.bl-portal .bl-section__desc,
.bl-portal .bl-card__text,
.bl-portal .bl-label,
.bl-portal .bl-empty-state__title,
.bl-portal .bl-summary-card__value,
.bl-portal .bl-stat-card__value,
.bl-portal .bl-timeline__content strong {
	color: var(--bl-charcoal);
}

.bl-portal .bl-summary-card__value--muted,
.bl-portal .bl-stat-card__value--muted,
.bl-portal .bl-empty-state__text,
.bl-portal .bl-btn--ghost {
	color: var(--bl-gray);
}

.bl-portal .bl-btn--ghost:hover {
	color: var(--bl-charcoal);
}

.bl-portal .bl-btn--outline {
	color: var(--bl-teal);
}

.bl-portal .bl-header__eyebrow {
	color: var(--bl-gold-deep);
}

/* Dark surfaces — light text allowed */
.bl-portal .bl-portal__sidebar,
.bl-portal .bl-portal__sidebar .bl-sidebar__brand-name,
.bl-portal .bl-portal__sidebar .bl-nav-list__link,
.bl-portal .bl-portal__sidebar .bl-sidebar__footnote,
.bl-portal .bl-portal__mobile-nav,
.bl-portal .bl-portal__mobile-nav .bl-mobile-nav__item {
	color: var(--bl-off-white);
}

.bl-portal .bl-portal__sidebar .bl-nav-list__link.is-active {
	color: var(--bl-champagne);
}

.bl-portal .bl-portal__sidebar .bl-nav-list__link--logout {
	color: rgba(245, 243, 239, 0.9);
}

.bl-portal .bl-portal__sidebar .bl-nav-list__link--logout:hover {
	color: #fff;
}

.bl-portal .bl-header__avatar {
	color: var(--bl-champagne);
}

/* --------------------------------------------------------------------------
   Elementor / theme overrides — force readable text on light surfaces
   -------------------------------------------------------------------------- */
.bl-portal .bl-portal__content .bl-section__title,
.bl-portal .bl-portal__content .bl-section__title[role="heading"],
.bl-portal .bl-portal__panel .bl-panel__title,
.bl-portal .bl-portal__panel .bl-panel__title[role="heading"] {
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
	font-size: clamp(1.125rem, 2vw, 1.375rem) !important;
	text-align: center !important;
	text-transform: none !important;
	font-weight: 500 !important;
	letter-spacing: 0.06em !important;
	line-height: 1.3 !important;
}

.bl-portal .bl-portal__content .bl-section__desc {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 42ch !important;
}

.bl-portal .bl-portal__content .bl-section__header {
	text-align: center !important;
}

.bl-portal .bl-portal__content .bl-empty-state,
.bl-portal .bl-portal__content .bl-empty-state__title,
.bl-portal .bl-portal__content .bl-empty-state__text {
	text-align: center !important;
}

.bl-portal .bl-portal__content h2,
.bl-portal .bl-portal__content h3,
.bl-portal .bl-portal__panel h2,
.bl-portal .bl-portal__panel h3,
.bl-portal .bl-portal__content .bl-card__title,
.bl-portal .bl-portal__content .bl-addon-card__title,
.bl-portal .bl-portal__content .bl-empty-state__title,
.bl-portal .bl-portal__panel .bl-panel__subtitle {
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
}

.bl-portal .bl-portal__content .bl-card__subtitle,
.bl-portal .bl-portal__content .bl-section__desc,
.bl-portal .bl-portal__panel .bl-panel__label,
.bl-portal .bl-portal__panel .bl-panel__value,
.bl-portal .bl-portal__content .bl-card__text,
.bl-portal .bl-portal__content .bl-empty-state__text {
	color: var(--bl-charcoal) !important;
	-webkit-text-fill-color: var(--bl-charcoal) !important;
}

.bl-portal .bl-portal__content button.bl-btn,
.bl-portal .bl-portal__panel button.bl-btn,
.bl-portal .bl-portal__content a.bl-btn,
.bl-portal .bl-portal__panel a.bl-btn {
	box-shadow: none !important;
	text-shadow: none !important;
	filter: none !important;
}

.bl-portal .bl-btn--gold {
	background: linear-gradient(135deg, var(--bl-gold) 0%, var(--bl-gold-deep) 100%) !important;
	color: var(--bl-charcoal) !important;
	-webkit-text-fill-color: var(--bl-charcoal) !important;
	border: none !important;
}

.bl-portal .bl-btn--outline {
	background: #fff !important;
	border: 1px solid var(--bl-teal) !important;
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
}

.bl-portal .bl-event-type-card {
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
	background-color: var(--bl-pearl) !important;
	border: 2px solid rgba(219, 199, 162, 0.55) !important;
	box-shadow: none !important;
	text-transform: none !important;
}

.bl-portal .bl-event-type-card__label {
	text-transform: none !important;
	letter-spacing: 0.02em !important;
}

.bl-portal .bl-event-type-card:hover {
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
	background: #fff !important;
	border-color: var(--bl-gold) !important;
	box-shadow: 0 0 0 1px var(--bl-gold-muted) !important;
}

.bl-portal .bl-event-type-card.is-selected {
	color: var(--bl-teal-deep) !important;
	-webkit-text-fill-color: var(--bl-teal-deep) !important;
	background: linear-gradient(180deg, #fff 0%, rgba(200, 154, 61, 0.12) 100%) !important;
	border-color: var(--bl-gold) !important;
	box-shadow: 0 0 0 2px var(--bl-gold-muted), 0 6px 18px rgba(200, 154, 61, 0.18) !important;
}

.bl-portal .bl-package-card {
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
	background-color: var(--bl-pearl) !important;
	border: 2px solid rgba(219, 199, 162, 0.55) !important;
}

.bl-portal .bl-package-card.is-selected {
	background: linear-gradient(180deg, #fff 0%, rgba(200, 154, 61, 0.1) 100%) !important;
	border-color: var(--bl-gold) !important;
	box-shadow: 0 0 0 2px var(--bl-gold-muted), 0 8px 24px rgba(200, 154, 61, 0.15) !important;
}

.bl-portal .bl-input,
.bl-portal .bl-textarea,
.bl-portal .bl-select {
	color: var(--bl-charcoal) !important;
	-webkit-text-fill-color: var(--bl-charcoal) !important;
	background-color: var(--bl-pearl) !important;
}

.bl-portal .bl-select option {
	color: var(--bl-charcoal);
	background: #fff;
}

.bl-portal .bl-btn--ghost {
	color: var(--bl-gray) !important;
	-webkit-text-fill-color: var(--bl-gray) !important;
	background: transparent !important;
	border-color: transparent !important;
}

/* Calendar availability */
.bl-calendar {
	margin-bottom: 0.75rem;
	padding: 1rem;
	border: 1px solid var(--bl-border-subtle);
	border-radius: var(--bl-radius-sm);
	background: #fff;
}

.bl-calendar__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.bl-calendar__title {
	font-family: var(--bl-font-heading);
	color: var(--bl-teal);
}

.bl-calendar__nav {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 1px solid var(--bl-border-subtle);
	background: #fff;
	color: var(--bl-teal);
}

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

.bl-calendar__weekdays span {
	text-align: center;
	font-size: 0.72rem;
	color: var(--bl-gray);
}

.bl-calendar__cell {
	min-height: 38px;
	border-radius: 8px;
	border: 1px solid transparent;
	background: #fff;
	color: var(--bl-charcoal);
	font-size: 0.85rem;
}

.bl-calendar__cell.is-empty {
	background: transparent;
	border: none;
}

.bl-calendar__cell.is-available {
	background: rgba(13, 96, 118, 0.08);
	border-color: rgba(13, 96, 118, 0.18);
}

.bl-calendar__cell.is-available.is-selected {
	background: var(--bl-teal);
	color: #fff;
}

.bl-calendar__cell.is-booked,
.bl-calendar__cell.is-blackout,
.bl-calendar__cell.is-past {
	background: rgba(45, 49, 59, 0.06);
	color: var(--bl-gray);
	cursor: not-allowed;
}

.bl-calendar__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.75rem;
	font-size: 0.75rem;
	color: var(--bl-gray);
}

.bl-calendar__key::before {
	content: '';
	display: inline-block;
	width: 0.75rem;
	height: 0.75rem;
	border-radius: 3px;
	margin-right: 0.35rem;
	vertical-align: middle;
}

.bl-calendar__key.is-available::before {
	background: rgba(13, 96, 118, 0.25);
}

.bl-calendar__key.is-booked::before {
	background: rgba(200, 154, 61, 0.45);
}

.bl-calendar__key.is-blackout::before {
	background: rgba(45, 49, 59, 0.2);
}

.bl-input--date-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.bl-terms-box {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--bl-border-subtle);
}

.bl-terms-box__content {
	max-height: 180px;
	overflow: auto;
	padding: 0.75rem;
	margin-bottom: 0.75rem;
	border: 1px solid var(--bl-border-subtle);
	border-radius: var(--bl-radius-sm);
	background: rgba(250, 248, 245, 0.8);
	font-size: 0.85rem;
	line-height: 1.5;
	white-space: pre-wrap;
	color: var(--bl-charcoal);
}

.bl-signature-pad {
	display: block;
	width: 100%;
	max-width: 640px;
	border: 1px dashed rgba(13, 96, 118, 0.35);
	border-radius: var(--bl-radius-sm);
	background: #fff;
	touch-action: none;
	margin: 0.35rem 0 0.75rem;
}

.bl-signature-pad--preview {
	margin-top: 0.75rem;
}

.bl-signature-modes {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0.75rem 0 0.5rem;
}

.bl-signature-mode {
	appearance: none;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 500;
	border: 1px solid var(--bl-border-subtle);
	background: #f3efe8;
	color: var(--bl-text-dim);
	cursor: pointer;
	font-family: inherit;
}

.bl-signature-mode.is-active {
	background: var(--bl-gold-muted);
	color: var(--bl-teal-deep);
	border-color: var(--bl-border);
}

.bl-signature-actions {
	margin-top: 0.5rem;
}

.bl-contract-sign__text {
	white-space: pre-wrap;
	margin-bottom: 0.75rem;
	color: var(--bl-charcoal);
}

.bl-proposal-meta {
	display: grid;
	gap: 0.35rem;
	margin-bottom: 1rem;
}

.bl-proposal-sign {
	margin: 1.25rem 0;
	padding-top: 1rem;
	border-top: 1px solid rgba(200, 154, 61, 0.28);
}

.bl-proposal-preview__frame {
	width: 100%;
	min-height: 360px;
	border: 1px solid rgba(216, 199, 162, 0.55);
	border-radius: var(--bl-radius);
	background: var(--bl-pearl);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}

.bl-signature-display,
.bl-signature-canvas-label {
	font-family: var(--bl-font-signature);
	color: var(--bl-teal);
	font-size: 1.75rem;
	line-height: 1.2;
}

.bl-signature-modes--compact {
	margin-top: 0.5rem;
}

.bl-proposal-preview {
	margin: 1.25rem 0;
}

.bl-proposal-actions {
	align-items: center;
}

.bl-proposal-actions .bl-btn {
	font-size: 0.8125rem;
	min-height: 2.25rem;
	padding: 0.4rem 0.85rem;
}

.bl-signature-status {
	margin: 0.75rem 0 1rem;
	padding: 0.65rem 0.85rem;
	border-radius: var(--bl-radius-sm);
	background: rgba(13, 96, 118, 0.08);
	color: var(--bl-teal);
	font-size: 0.9rem;
}

.bl-signature-status--done {
	background: rgba(34, 120, 80, 0.12);
	color: #1f6b4f;
}

.bl-signature-status--pending {
	background: rgba(200, 154, 61, 0.12);
	color: var(--bl-gold);
}

.bl-signature-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bl-gold);
	margin: 0.75rem 0 0.35rem;
	font-weight: 600;
}

.bl-signature-preview__box {
	border: 1px solid var(--bl-border-subtle);
	border-radius: var(--bl-radius-sm);
	padding: 0.5rem;
	background: #fff;
	max-width: 320px;
}

.bl-signature-preview__box img {
	display: block;
	max-width: 100%;
	height: 72px;
	object-fit: contain;
}

.bl-admin-hub-card {
	margin-bottom: 1rem;
}

.bl-admin-thread-list {
	display: grid;
	gap: 0.5rem;
}

.bl-admin-thread-row {
	display: grid;
	gap: 0.2rem;
	width: 100%;
	text-align: left;
	padding: 0.75rem 0.9rem;
	border-radius: var(--bl-radius-sm);
	border: 1px solid var(--bl-border-subtle);
	background: #fff;
	cursor: pointer;
	font-family: inherit;
}

.bl-admin-thread-row.is-unread {
	border-color: var(--bl-gold);
	background: var(--bl-gold-muted);
}

.bl-admin-thread-row strong {
	color: var(--bl-teal);
	font-size: 0.9rem;
}

.bl-admin-thread-row span {
	font-size: 0.75rem;
	color: var(--bl-text-muted);
}

.bl-admin-thread-row p {
	margin: 0.15rem 0 0;
	font-size: 0.85rem;
	color: var(--bl-charcoal);
}

.bl-admin-thread {
	max-height: 320px;
	overflow-y: auto;
	margin: 0.75rem 0;
}

.bl-portal--admin .bl-nav-list__link[data-bl-nav="admin-hub"] {
	border-left: 3px solid var(--bl-gold);
}

.bl-portal-test-banner {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	padding: 0.65rem 1rem;
	background: linear-gradient( 90deg, rgba( 13, 96, 118, 0.12 ), rgba( 200, 154, 61, 0.18 ) );
	border-bottom: 1px solid rgba( 200, 154, 61, 0.45 );
	color: var( --bl-charcoal, #2d313b );
	font-size: 0.875rem;
	z-index: 5;
}

.bl-portal-test-banner__actions {
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-portal-test-banner__btn {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.75rem;
	border-radius: var( --bl-radius-sm, 4px );
	border: 1px solid rgba( 13, 96, 118, 0.35 );
	background: #fff;
	color: var( --bl-teal, #0d6076 );
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var( --bl-transition, 0.2s ease ), border-color var( --bl-transition, 0.2s ease );
}

.bl-portal-test-banner__btn:hover {
	background: rgba( 13, 96, 118, 0.08 );
	border-color: var( --bl-teal, #0d6076 );
}

.bl-portal-test-banner__btn--primary {
	background: var( --bl-teal, #0d6076 );
	border-color: var( --bl-teal, #0d6076 );
	color: #fff;
}

.bl-portal-test-banner__btn--primary:hover {
	background: #0a4d5f;
	border-color: #0a4d5f;
}

.bl-portal-test-banner strong {
	color: var( --bl-teal, #0d6076 );
	font-family: var( --bl-font-heading, 'Cinzel', serif );
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 0.75rem;
}

.bl-portal--test-mode .bl-portal__main {
	border-top: 3px solid var( --bl-gold, #c89a3d );
}

/* Guest auth gate */
.bl-auth-gate {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 1.25rem;
	background:
		radial-gradient(ellipse 80% 60% at 50% 0%, rgba(242, 229, 200, 0.45) 0%, transparent 60%),
		var(--bl-marble);
}

.bl-auth-gate--full {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.bl-auth-gate__card {
	width: 100%;
	max-width: 440px;
	background: linear-gradient(165deg, var(--bl-pearl) 0%, var(--bl-champagne) 100%);
	border: 1px solid rgba(200, 154, 61, 0.35);
	border-radius: var(--bl-radius-lg);
	padding: 2.25rem 2rem;
	box-shadow: var(--bl-shadow);
	position: relative;
}

.bl-auth-gate__card::before,
.bl-auth-gate__card::after {
	content: "";
	position: absolute;
	width: 22px;
	height: 22px;
	border-color: rgba(200, 154, 61, 0.5);
	border-style: solid;
	pointer-events: none;
}

.bl-auth-gate__card::before {
	top: 12px;
	left: 12px;
	border-width: 1px 0 0 1px;
}

.bl-auth-gate__card::after {
	bottom: 12px;
	right: 12px;
	border-width: 0 1px 1px 0;
}

.bl-auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
	padding: 0.35rem;
	background: var(--bl-off-white);
	border-radius: 999px;
	border: 1px solid rgba(216, 199, 162, 0.45);
}

.bl-auth-tabs[hidden] {
	display: none !important;
}

.bl-auth-tab {
	appearance: none;
	border: none;
	background: transparent;
	color: var(--bl-text-muted);
	font-family: var(--bl-font-body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.75rem 0.85rem;
	border-radius: 999px;
	cursor: pointer;
	transition: background var(--bl-transition), color var(--bl-transition), box-shadow var(--bl-transition);
}

.bl-auth-tab.is-active {
	background: var(--bl-pearl);
	color: var(--bl-teal);
	box-shadow: 0 4px 14px rgba(13, 96, 118, 0.12);
}

.bl-auth-gate__brand {
	text-align: center;
	margin-bottom: 1.75rem;
}

.bl-auth-gate__brand img {
	border-radius: 50%;
	margin-bottom: 0.75rem;
}

.bl-auth-gate__eyebrow {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--bl-gold, #c89a3d);
	margin: 0;
}

.bl-auth-gate__title {
	font-family: var(--bl-font-heading);
	font-size: 1.45rem;
	color: var(--bl-teal);
	margin: 0.35rem 0 0;
	letter-spacing: 0.08em;
}

.bl-auth-gate__heading {
	font-family: var(--bl-font-heading);
	font-size: 1.15rem;
	color: var(--bl-teal);
	margin: 0 0 0.35rem;
	text-align: center;
	letter-spacing: 0.06em;
}

.bl-auth-gate__text {
	color: var(--bl-text-muted);
	font-size: 0.9375rem;
	line-height: 1.6;
	text-align: center;
	margin: 0 0 1.25rem;
}

.bl-auth-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bl-auth-gate .bl-label {
	color: var(--bl-teal) !important;
	-webkit-text-fill-color: var(--bl-teal) !important;
}

.bl-auth-gate .bl-input {
	color: #2c2c2c !important;
	-webkit-text-fill-color: #2c2c2c !important;
	background: #faf8f5 !important;
	border: 1px solid rgba(44, 44, 44, 0.12) !important;
}

.bl-auth-gate .bl-input:focus {
	border-color: var(--bl-gold, #c89a3d) !important;
	box-shadow: 0 0 0 3px rgba(200, 154, 61, 0.18) !important;
}

.bl-auth-gate .bl-note {
	color: #6b7177;
}

.bl-auth-remember {
	color: #5a5a5a;
	font-size: 0.875rem;
}

.bl-auth-view[hidden] {
	display: none !important;
}

.bl-auth-gate .bl-auth-view#bl-auth-view-register,
.bl-auth-gate .bl-auth-view#bl-auth-view-pending {
	display: none;
}

.bl-auth-gate .bl-auth-view#bl-auth-view-register:not([hidden]),
.bl-auth-gate .bl-auth-view#bl-auth-view-pending:not([hidden]) {
	display: block;
}

.bl-auth-gate__switch {
	text-align: center;
	margin: 1.25rem 0 0;
	font-size: 0.875rem;
	color: #5a5a5a;
}

.bl-auth-gate__link {
	background: none;
	border: none;
	padding: 0;
	color: var(--bl-gold-deep, #a67c2f);
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
	font-size: inherit;
}

.bl-auth-gate__alert {
	padding: 0.875rem 1rem;
	border-radius: 6px;
	margin-bottom: 1rem;
	font-size: 0.875rem;
	line-height: 1.45;
}

.bl-auth-gate__alert--error {
	background: rgba(180, 60, 60, 0.12);
	border: 1px solid rgba(180, 60, 60, 0.35);
	color: #8b2e2e;
}

.bl-auth-gate__alert--success {
	background: rgba(200, 154, 61, 0.12);
	border: 1px solid rgba(200, 154, 61, 0.35);
	color: #6b4e1a;
}

.bl-auth-gate .bl-btn--outline {
	color: #2c2c2c !important;
	-webkit-text-fill-color: #2c2c2c !important;
	border-color: rgba(44, 44, 44, 0.18) !important;
	background: #fff !important;
}

/* Theme/Elementor-safe auth controls (guest gate is outside #boykin-portal) */
#boykin-portal-auth,
#boykin-portal-auth .bl-auth-gate {
	font-family: var(--bl-font-body, "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	color: #2c2c2c;
	-webkit-text-fill-color: #2c2c2c;
}

#boykin-portal-auth .bl-auth-gate__title,
#boykin-portal-auth .bl-auth-gate__heading,
#boykin-portal-auth .bl-auth-gate__eyebrow {
	font-family: var(--bl-font-heading, "Cinzel", Georgia, serif);
}

#boykin-portal-auth button.bl-btn,
#boykin-portal-auth .bl-auth-tab,
#boykin-portal-auth .bl-auth-gate__link {
	font-family: var(--bl-font-body, "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif) !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

#boykin-portal-auth .bl-btn--gold {
	background: linear-gradient(135deg, var(--bl-gold, #c89a3d) 0%, var(--bl-gold-deep, #a67c2f) 100%) !important;
	color: var(--bl-charcoal, #2c2c2c) !important;
	-webkit-text-fill-color: var(--bl-charcoal, #2c2c2c) !important;
	border: none !important;
	box-shadow: 0 4px 14px rgba(200, 154, 61, 0.28) !important;
	font-weight: 600 !important;
}

#boykin-portal-auth .bl-btn--gold:hover,
#boykin-portal-auth .bl-btn--gold:focus-visible {
	background: linear-gradient(135deg, var(--bl-gold-light, #d4ab55) 0%, var(--bl-gold, #c89a3d) 100%) !important;
	color: var(--bl-charcoal, #2c2c2c) !important;
	-webkit-text-fill-color: var(--bl-charcoal, #2c2c2c) !important;
}

#boykin-portal-auth .bl-auth-gate__link {
	text-transform: none;
	letter-spacing: normal;
	color: var(--bl-gold-deep, #a67c2f) !important;
	-webkit-text-fill-color: var(--bl-gold-deep, #a67c2f) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}

#boykin-portal-auth .bl-auth-gate__link:hover,
#boykin-portal-auth .bl-auth-gate__link:focus-visible {
	color: var(--bl-gold, #c89a3d) !important;
	-webkit-text-fill-color: var(--bl-gold, #c89a3d) !important;
}

#boykin-portal-auth .bl-auth-remember {
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
}

#boykin-portal-auth .bl-auth-remember input[type="checkbox"] {
	accent-color: var(--bl-gold, #c89a3d);
	width: 18px;
	height: 18px;
}

.bl-btn--block {
	width: 100%;
	justify-content: center;
}

.bl-consultation-types {
	display: grid;
	gap: 0.75rem;
}

.bl-consultation-scope {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border-left: 3px solid var(--bl-gold, #c89a3d);
	background: rgba(200, 154, 61, 0.08);
	color: var(--bl-text-muted);
	font-size: 0.9rem;
	line-height: 1.5;
}

.bl-consultation-guidelines {
	margin-top: 1rem;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(200, 154, 61, 0.22);
	border-radius: 12px;
	background: rgba(13, 96, 118, 0.12);
}

.bl-consultation-guidelines__title {
	margin: 0 0 0.5rem;
	font-size: 0.9rem;
	color: var(--bl-gold, #c89a3d);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.bl-consultation-guidelines__body {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--bl-text-muted);
}

.bl-consultation-selected {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1rem;
	padding: 0.75rem 0.9rem;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.04);
}

.bl-consultation-selected__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bl-text-muted);
}

.bl-consultation-type__price {
	display: block;
	margin-top: 0.2rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--bl-gold, #c89a3d);
}

.bl-consultation-types--prompt {
	padding: 0.35rem;
	border-radius: var(--bl-radius-sm);
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.45);
	animation: bl-event-type-prompt 2.2s ease-in-out infinite;
}

.bl-consultation-type {
	display: flex;
	gap: 0.75rem;
	padding: 1rem;
	border: 1px solid rgba(200, 154, 61, 0.25);
	border-radius: 12px;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.bl-consultation-type:has(input:checked),
.bl-consultation-type.is-selected {
	border-color: var(--bl-gold, #c89a3d);
	background: rgba(200, 154, 61, 0.08);
}

.bl-consultation-type input {
	margin-top: 0.25rem;
	accent-color: var(--bl-gold, #c89a3d);
}

.bl-consultation-type__body {
	display: grid;
	gap: 0.25rem;
}

.bl-consultation-type__title {
	font-weight: 600;
}

.bl-consultation-type__meta,
.bl-consultation-type__desc {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.92rem;
}

.bl-consultation-providers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-radio-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.85rem;
	border: 1px solid rgba(200, 154, 61, 0.25);
	border-radius: 999px;
	cursor: pointer;
}

.bl-radio-pill:has(input:checked) {
	border-color: var(--bl-gold, #c89a3d);
	background: rgba(200, 154, 61, 0.1);
}

.bl-consultation-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-consultation-slot {
	border: 1px solid rgba(200, 154, 61, 0.25);
	background: transparent;
	color: inherit;
	padding: 0.5rem 0.85rem;
	border-radius: 999px;
	cursor: pointer;
}

.bl-consultation-slot.is-active,
.bl-consultation-slot:not(.is-booked):hover {
	border-color: var(--bl-gold, #c89a3d);
	background: rgba(200, 154, 61, 0.12);
}

.bl-consultation-slot.is-booked {
	opacity: 0.45;
	cursor: not-allowed;
	text-decoration: line-through;
	border-style: dashed;
}

.bl-input--locked {
	opacity: 0.55;
	cursor: not-allowed;
}

.bl-consultations-loading .bl-empty-state__title {
	color: var(--bl-teal);
}

.bl-consultation-item {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.bl-consultation-item:last-child {
	border-bottom: 0;
}

.bl-consultation-item__main {
	display: grid;
	gap: 0.35rem;
}

.bl-consultation-item__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: flex-start;
}

.bl-btn--sm {
	padding: 0.45rem 0.85rem;
	font-size: 0.85rem;
}

.bl-flipbook__stage {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 420px;
	background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(0,0,0,0.2));
	border-radius: 14px;
	overflow: hidden;
}

.bl-flipbook__stage.is-turning .bl-flipbook__page {
	transform: perspective(1200px) rotateY(-4deg) scale(0.985);
	opacity: 0.92;
}

.bl-flipbook__page {
	margin: 0;
	width: min(100%, 760px);
	transition: transform 0.22s ease, opacity 0.22s ease;
}

.bl-flipbook__page img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
	background: #fff;
}

.bl-flipbook__hit {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 18%;
	border: 0;
	background: transparent;
	cursor: pointer;
	z-index: 2;
}

.bl-flipbook__hit--prev { left: 0; }
.bl-flipbook__hit--next { right: 0; }

.bl-flipbook__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
}

.bl-flipbook__meta {
	display: grid;
	gap: 0.15rem;
	text-align: center;
	font-size: 0.92rem;
	color: rgba(255, 255, 255, 0.78);
}

.bl-flipbook__thumbs {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	padding-top: 1rem;
	margin-top: 0.5rem;
}

.bl-flipbook__thumb {
	flex: 0 0 auto;
	width: 72px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 8px;
	background: transparent;
	cursor: pointer;
	overflow: hidden;
}

.bl-flipbook__thumb.is-active {
	border-color: var(--bl-gold, #c89a3d);
}

.bl-flipbook__thumb img {
	display: block;
	width: 100%;
	height: auto;
}

.bl-booking-confirmed-page {
	max-width: 40rem;
	margin: 0 auto;
}

.bl-section--confirmed {
	padding-top: 0.5rem;
}

.bl-booking-confirmed {
	padding: 1.75rem 1.5rem;
}

.bl-booking-confirmed__hero {
	text-align: center;
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid rgba(200, 154, 61, 0.18);
}

.bl-booking-confirmed__title {
	margin: 0 0 0.65rem;
	font-size: 1.35rem;
	font-weight: 600;
	color: var(--bl-teal, #0d6076);
	text-transform: none;
	letter-spacing: 0;
}

.bl-booking-confirmed__summary {
	margin: 0 auto;
	max-width: 30rem;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--bl-text-muted);
}

.bl-booking-confirmed__summary.is-loading {
	opacity: 0.72;
}

.bl-booking-confirmed__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: rgba(200, 154, 61, 0.18);
	color: var(--bl-gold);
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.bl-booking-confirmed__block {
	padding-top: 1.25rem;
	margin-top: 1.25rem;
	border-top: 1px solid rgba(200, 154, 61, 0.12);
}

.bl-booking-confirmed__block:first-of-type {
	border-top: 0;
	margin-top: 0;
	padding-top: 0;
}

.bl-booking-confirmed__label {
	margin: 0 0 0.75rem;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bl-gold, #c89a3d);
}

.bl-booking-confirmed__hint,
.bl-booking-confirmed__proposal-hint {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--bl-text-muted);
}

.bl-booking-confirmed__proposal-hint {
	margin-top: 1rem;
	margin-bottom: 0.75rem;
	font-size: 0.8125rem;
}

.bl-section__back {
	margin-bottom: 0.75rem;
	padding-left: 0;
}

.bl-booking-confirmed-actions {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.bl-booking-confirmed-actions .bl-btn {
	width: 100%;
	white-space: normal;
	line-height: 1.35;
	text-align: center;
}

.bl-booking-confirmed__cta .bl-btn {
	width: 100%;
	justify-content: center;
}

#bl-booking-confirmed-proposal.is-loading {
	opacity: 0.85;
}

#bl-booking-confirmed-proposal {
	margin-top: 0.25rem;
}

.bl-review-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.bl-review-checklist__item {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.65rem 0.75rem;
	border-radius: var(--bl-radius-sm);
	background: rgba(255, 255, 255, 0.04);
}

.bl-review-checklist__item.is-passed .bl-review-checklist__mark {
	color: #2f8f5b;
}

.bl-review-checklist__item.is-failed .bl-review-checklist__mark {
	color: #c45c5c;
}

.bl-list--numbered {
	counter-reset: bl-step;
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.65rem;
}

.bl-list--numbered li {
	counter-increment: bl-step;
	padding-left: 2rem;
	position: relative;
}

.bl-list--numbered li::before {
	content: counter(bl-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: rgba(200, 154, 61, 0.18);
	color: var(--bl-gold);
	font-size: 0.75rem;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.bl-consultation-provider-links,
.bl-consultation-calendar-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin-top: 0.65rem;
	font-size: 0.8125rem;
}

.bl-link {
	color: var(--bl-gold);
	text-decoration: underline;
}

.bl-consultation-room {
	position: fixed;
	inset: 0;
	z-index: 11000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.bl-consultation-room[hidden] {
	display: none !important;
}

.bl-consultation-room__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 28, 32, 0.78);
}

.bl-consultation-room__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 920px);
	max-height: 92vh;
	overflow: auto;
	padding: 1.25rem;
	border-radius: var(--bl-radius-md);
	background: #fff;
	border: 1px solid rgba(200, 154, 61, 0.35);
}

.bl-consultation-room__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.75rem;
}

.bl-consultation-room__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1rem 0;
}

.bl-consultation-room__frame {
	width: 100%;
	min-height: 420px;
	border: 1px solid rgba(200, 154, 61, 0.25);
	border-radius: var(--bl-radius-sm);
	margin-top: 1rem;
}

.bl-consultation-room__diary {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(200, 154, 61, 0.2);
}

.bl-diary-item {
	padding: 0.85rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.bl-diary-item__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.35rem;
}

.bl-diary-item__head .bl-btn {
	flex-shrink: 0;
}

.bl-diary-item:last-child {
	border-bottom: 0;
}

.bl-diary-item__meta {
	font-size: 0.8125rem;
	color: var(--bl-text-muted);
}

.bl-diary-visibility {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.bl-diary-visibility--shared {
	color: var(--bl-gold, #c89a3d);
}

.bl-diary-visibility--private {
	color: rgba(255, 255, 255, 0.55);
}

.bl-calendar__cell.is-booked {
	opacity: 0.45;
	cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   Event Planner — cute yearly planner UI
   -------------------------------------------------------------------------- */
.bl-planner-toolbar {
	border: 1px solid rgba(219, 199, 162, 0.55);
	box-shadow: 0 10px 28px rgba(45, 49, 59, 0.06);
	transition: box-shadow var(--bl-transition), transform var(--bl-transition);
}

.bl-planner-toolbar:hover {
	box-shadow: 0 14px 34px rgba(13, 96, 118, 0.1);
}

.bl-planner-toolbar__row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
}

.bl-planner-toolbar__label {
	display: block;
	margin-bottom: 0.5rem;
}

.bl-planner-toolbar__hint {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--bl-text-muted);
	max-width: 22rem;
}

.bl-planner-year-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-planner-year-pill {
	min-height: 44px;
	min-width: 4.5rem;
	padding: 0.5rem 1rem;
	border: 1px solid rgba(219, 199, 162, 0.65);
	border-radius: 999px;
	background: var(--bl-pearl);
	color: var(--bl-teal);
	font-family: var(--bl-font-body);
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--bl-transition), border-color var(--bl-transition), color var(--bl-transition), transform 0.15s ease, box-shadow var(--bl-transition);
}

.bl-planner-year-pill:hover {
	border-color: var(--bl-gold);
	background: var(--bl-gold-muted);
	transform: translateY(-1px);
}

.bl-planner-year-pill.is-active {
	background: var(--bl-teal);
	border-color: var(--bl-teal);
	color: var(--bl-text-on-dark);
	box-shadow: var(--bl-shadow-teal);
}

.bl-planner-form {
	border: 1px solid rgba(219, 199, 162, 0.55);
	border-radius: var(--bl-radius-lg);
}

.bl-planner-form__header {
	margin-bottom: 1rem;
}

.bl-planner-form__subtitle {
	margin: 0.35rem 0 0;
	font-size: 0.875rem;
	color: var(--bl-text-muted);
}

.bl-planner-category-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-planner-category-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 44px;
	padding: 0.45rem 0.85rem;
	border: 1px solid rgba(219, 199, 162, 0.55);
	border-radius: 999px;
	background: var(--bl-pearl);
	color: var(--bl-charcoal);
	font-size: 0.8125rem;
	font-weight: 500;
	cursor: pointer;
	transition: background var(--bl-transition), border-color var(--bl-transition), transform 0.15s ease, box-shadow var(--bl-transition);
}

.bl-planner-category-chip:hover {
	transform: translateY(-1px);
	border-color: var(--bl-gold);
}

.bl-planner-category-chip.is-active {
	border-color: var(--bl-gold);
	background: var(--bl-gold-muted);
	box-shadow: 0 4px 14px rgba(200, 154, 61, 0.18);
}

.bl-planner-category-chip__icon {
	font-size: 1rem;
	line-height: 1;
}

.bl-planner-save-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 48px;
	margin-top: 0.25rem;
}

.bl-planner-save-btn__spark {
	color: var(--bl-gold-light);
	font-size: 0.9rem;
}

.bl-planner-list-card {
	border: 1px solid rgba(219, 199, 162, 0.45);
}

.bl-planner-list {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.bl-planner-month__title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	margin: 0 0 0.85rem;
	font-family: var(--bl-font-heading);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--bl-teal);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bl-planner-month__diamond {
	font-size: 0.45rem;
	color: var(--bl-gold);
	line-height: 1;
}

.bl-planner-month__entries {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.bl-planner-entry {
	padding: 1rem 1.05rem;
	border: 1px solid rgba(219, 199, 162, 0.45);
	border-radius: var(--bl-radius-lg);
	background: var(--bl-pearl);
	box-shadow: 0 8px 22px rgba(45, 49, 59, 0.05);
	transition: transform var(--bl-transition), box-shadow var(--bl-transition), border-color var(--bl-transition);
}

.bl-planner-entry:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(13, 96, 118, 0.1);
	border-color: rgba(200, 154, 61, 0.45);
}

.bl-planner-entry--milestone { background: linear-gradient(135deg, rgba(255, 248, 235, 0.95), rgba(252, 251, 249, 1)); }
.bl-planner-entry--reminder { background: linear-gradient(135deg, rgba(235, 248, 252, 0.95), rgba(252, 251, 249, 1)); }
.bl-planner-entry--idea { background: linear-gradient(135deg, rgba(255, 245, 250, 0.95), rgba(252, 251, 249, 1)); }
.bl-planner-entry--vendor { background: linear-gradient(135deg, rgba(255, 240, 245, 0.95), rgba(252, 251, 249, 1)); }
.bl-planner-entry--music { background: linear-gradient(135deg, rgba(240, 248, 255, 0.95), rgba(252, 251, 249, 1)); }
.bl-planner-entry--general { background: linear-gradient(135deg, rgba(248, 246, 242, 0.95), rgba(252, 251, 249, 1)); }

.bl-planner-entry__head {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.bl-planner-entry__badge {
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--bl-gold-muted);
	font-size: 1.1rem;
}

.bl-planner-entry__title {
	margin: 0 0 0.2rem;
	font-size: 1rem;
	color: var(--bl-teal-deep);
}

.bl-planner-entry__meta {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--bl-text-muted);
}

.bl-planner-entry__note {
	margin: 0 0 0.75rem;
	padding-left: 3rem;
	font-size: 0.9rem;
	white-space: pre-wrap;
	word-break: break-word;
}

.bl-planner-entry__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	padding-left: 3rem;
}

.bl-planner-entry__actions .bl-btn {
	min-height: 40px;
}

.bl-planner-visibility {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.bl-planner-visibility--shared {
	color: var(--bl-gold);
}

.bl-planner-visibility--private {
	color: var(--bl-text-muted);
}

.bl-planner-export {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(219, 199, 162, 0.35);
}

.bl-planner-export .bl-btn {
	min-height: 44px;
}

.bl-textarea--planner {
	min-height: 8rem;
	font-size: 1rem;
	line-height: 1.55;
}

.bl-planner-form__optional {
	margin-top: 0.75rem;
}

.bl-planner-details {
	margin-top: 0.75rem;
	border: 1px dashed rgba(219, 199, 162, 0.45);
	border-radius: var(--bl-radius-md);
	padding: 0.65rem 0.85rem;
	background: rgba(250, 248, 245, 0.65);
}

.bl-planner-details__summary {
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--bl-teal);
	list-style: none;
}

.bl-planner-details__summary::-webkit-details-marker {
	display: none;
}

.bl-planner-details__body {
	margin-top: 0.85rem;
	padding-top: 0.85rem;
	border-top: 1px solid rgba(219, 199, 162, 0.35);
}

@media (max-width: 640px) {
	.bl-planner-entry__note,
	.bl-planner-entry__actions {
		padding-left: 0;
	}

	.bl-planner-toolbar__hint {
		max-width: none;
	}
}

/* Planner book — page-turning Jan–Dec notebook */
.bl-booking-readonly-banner {
	align-items: center;
	background: linear-gradient(135deg, rgba(255, 248, 235, 0.95), rgba(252, 251, 249, 1));
	border: 1px solid rgba(200, 154, 61, 0.35);
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
}

.bl-booking-flow:not(.is-readonly) #bl-booking-readonly-banner[hidden],
.bl-booking-flow:not(.is-readonly) #bl-booking-readonly-banner {
	display: none !important;
}

.bl-booking-flow:not(.is-revising) #bl-booking-revise-banner[hidden],
.bl-booking-flow:not(.is-revising) #bl-booking-revise-banner {
	display: none !important;
}

.bl-booking-flow.is-readonly #bl-booking-readonly-banner {
	display: flex !important;
}

.bl-booking-flow.is-revising #bl-booking-revise-banner {
	display: block !important;
}

.bl-booking-readonly-banner__copy {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	flex: 1 1 220px;
}

.bl-booking-revise-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-booking-revise-banner {
	align-items: center;
	background: linear-gradient(135deg, rgba(232, 246, 249, 0.95), rgba(252, 251, 249, 1));
	border: 1px solid rgba(13, 96, 118, 0.28);
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
}

.bl-booking-revise-banner p {
	margin: 0;
	flex: 1 1 240px;
}

.bl-booking-revise-banner__steps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.bl-booking-flow.is-readonly .bl-booking-step input,
.bl-booking-flow.is-readonly .bl-booking-step textarea,
.bl-booking-flow.is-readonly .bl-booking-step select {
	opacity: 0.92;
}

/* Planner book — page-turning Jan–Dec notebook */
.bl-planner-toolbar--book {
	background: linear-gradient(180deg, rgba(255, 254, 249, 0.98), rgba(247, 242, 234, 0.95));
	border: 1px solid rgba(200, 154, 61, 0.32);
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(45, 49, 59, 0.07);
	margin-bottom: 0.85rem;
	padding: 0.85rem 1rem;
}

.bl-planner-loading {
	color: rgba(45, 49, 59, 0.72);
	font-size: 0.88rem;
	margin: 0 0 0.75rem;
	min-height: 1.25rem;
	text-align: center;
}

.bl-planner-debug-pill {
	color: rgba(13, 96, 118, 0.72);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.72rem;
	margin: 0 0 0.5rem;
	min-height: 1rem;
	text-align: center;
}

.bl-planner-debug-pill:empty {
	display: none;
}

.bl-planner-loading[hidden] {
	display: none;
}

#bl-section-event-planner.is-planner-ready #bl-planner-book,
#bl-section-event-planner.is-planner-ready .bl-planner-horiz-tabs,
#bl-section-event-planner.is-planner-ready .bl-planner-draw-tools,
#bl-section-event-planner.is-planner-ready .bl-planner-toolbar--book {
	pointer-events: auto;
}

#bl-planner-book {
	min-height: 580px;
	opacity: 1;
}

#bl-planner-book.is-planner-loading {
	opacity: 0.72;
}

#bl-section-event-planner.is-planner-loading .bl-planner-horiz-tabs,
#bl-section-event-planner.is-planner-loading .bl-planner-draw-tools {
	opacity: 0.85;
}

#bl-section-event-planner.is-planner-loading .bl-planner-toolbar--book {
	opacity: 0.85;
}

.bl-sticker-palette {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-sticker-palette__item {
	background: linear-gradient(180deg, #fff, #faf8f5);
	border: 1px solid rgba(200, 154, 61, 0.22);
	border-radius: 14px;
	box-shadow: 0 2px 8px rgba(45, 49, 59, 0.05);
	cursor: pointer;
	font-size: 1.35rem;
	line-height: 1;
	min-height: 46px;
	min-width: 46px;
	padding: 0.35rem 0.55rem;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.bl-sticker-palette__item:hover,
.bl-sticker-palette__item.is-active {
	border-color: var(--bl-gold, #C89A3D);
	box-shadow: 0 4px 14px rgba(200, 154, 61, 0.18);
	transform: translateY(-1px);
}

.bl-sticker-palette__item--draggable {
	cursor: grab;
	touch-action: none;
	user-select: none;
}

.bl-sticker-palette__item--draggable:active,
.bl-sticker-palette__item--draggable.is-dragging {
	cursor: grabbing;
	transform: scale(1.08);
}

.bl-planner-drag-ghost {
	font-size: 2rem;
	left: 0;
	line-height: 1;
	pointer-events: none;
	position: fixed;
	top: 0;
	transform: translate(-50%, -50%);
	z-index: 10000;
	filter: drop-shadow(0 6px 14px rgba(45, 49, 59, 0.28));
}

.bl-planner-book.is-sticker-ready .bl-planner-book__day {
	box-shadow: inset 0 0 0 1px rgba(200, 154, 61, 0.35);
}

.bl-planner-book.is-sticker-ready .bl-planner-book__day:hover {
	background: rgba(200, 154, 61, 0.12);
	border-color: rgba(200, 154, 61, 0.65);
}

.bl-planner-book {
	display: grid;
	gap: 1.25rem;
	margin: 0 auto 1.5rem;
	max-width: 820px;
}

.bl-planner-book__stage {
	position: relative;
}

.bl-planner-book__shadow {
	background: radial-gradient(ellipse at center, rgba(13, 96, 118, 0.16), transparent 72%);
	height: 28px;
	margin: 0 auto 0.35rem;
	max-width: 88%;
}

.bl-planner-book__body {
	display: grid;
	grid-template-columns: 18px 1fr auto;
	min-height: 560px;
	position: relative;
}

.bl-planner-book__spine {
	background: linear-gradient(90deg, #6b4f2d 0%, #8b6914 18%, #c89a3d 42%, #8b6914 72%, #5a4018 100%);
	border-radius: 8px 0 0 8px;
	box-shadow: inset -3px 0 8px rgba(0, 0, 0, 0.18);
}

.bl-planner-book__spread {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.35), transparent 40%),
		linear-gradient(135deg, #f6efe4 0%, #ebe3d7 48%, #e5dccf 100%);
	border: 1px solid rgba(90, 64, 24, 0.24);
	border-left: 0;
	border-radius: 0 16px 16px 0;
	box-shadow:
		0 22px 48px rgba(45, 49, 59, 0.14),
		inset 0 0 0 1px rgba(255, 255, 255, 0.5),
		inset 0 -24px 40px rgba(13, 96, 118, 0.04);
	padding: 0.85rem 0.85rem 0.85rem 1rem;
	position: relative;
}

.bl-planner-book__spread.is-cover {
	padding: 0.85rem;
}

.bl-planner-book__spread.is-spread {
	display: grid;
	gap: 0.65rem;
	grid-template-columns: 1fr 1fr;
	padding: 0.85rem;
}

.bl-planner-book__leaf {
	min-width: 0;
	position: relative;
}

.bl-planner-book__leaf--left .bl-planner-book__page,
.bl-planner-book__leaf--right .bl-planner-book__page-wrap {
	min-height: 500px;
}

.bl-planner-book__leaf--left .bl-planner-book__page {
	box-shadow:
		inset -8px 0 12px rgba(45, 49, 59, 0.04),
		2px 2px 0 rgba(13, 96, 118, 0.04);
}

.bl-planner-book__leaf--left .bl-planner-book__cover--inside {
	min-height: 460px;
}

.bl-planner-book__page-wrap {
	min-height: 520px;
	perspective: 1200px;
	transition: transform 0.28s ease, opacity 0.28s ease;
}

.bl-planner-book__page-wrap.is-turning {
	opacity: 0.55;
}

.bl-planner-book__page-wrap.is-turning.is-turn-forward {
	transform: rotateY(-14deg) scale(0.985);
	transform-origin: left center;
}

.bl-planner-book__page-wrap.is-turning.is-turn-back {
	transform: rotateY(14deg) scale(0.985);
	transform-origin: right center;
}

.bl-planner-book__page-wrap.is-turned {
	opacity: 1;
	transform: none;
}

.bl-planner-book__curl {
	background:
		linear-gradient(135deg, transparent 45%, rgba(200, 154, 61, 0.22) 46%, rgba(255, 255, 255, 0.85) 100%);
	border: 0;
	border-radius: 0 0 6px 0;
	bottom: 0;
	box-shadow: -2px 2px 6px rgba(45, 49, 59, 0.12);
	cursor: pointer;
	height: 52px;
	position: absolute;
	right: 0;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	width: 52px;
	z-index: 3;
}

.bl-planner-book__curl:hover {
	box-shadow: -4px 4px 10px rgba(45, 49, 59, 0.18);
	transform: scale(1.04);
}

.bl-planner-book__curl::after {
	color: rgba(13, 96, 118, 0.55);
	content: '›';
	font-size: 1.35rem;
	font-weight: 700;
	position: absolute;
	right: 0.45rem;
	bottom: 0.35rem;
}

.bl-planner-book__page {
	background:
		linear-gradient(180deg, rgba(255, 254, 249, 0.98), rgba(252, 250, 246, 1)),
		repeating-linear-gradient(
			180deg,
			transparent,
			transparent 27px,
			rgba(13, 96, 118, 0.045) 27px,
			rgba(13, 96, 118, 0.045) 28px
		);
	border: 1px solid rgba(13, 96, 118, 0.1);
	border-radius: 8px;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.72),
		inset 12px 0 20px rgba(13, 96, 118, 0.03),
		2px 3px 0 rgba(13, 96, 118, 0.05);
	min-height: 500px;
	padding: 1.1rem 1.25rem 1.25rem;
	position: relative;
}

.bl-planner-book__page::before {
	background: linear-gradient(90deg, rgba(13, 96, 118, 0.05), transparent 18px);
	border-radius: 6px 0 0 6px;
	content: '';
	inset: 0 auto 0 0;
	position: absolute;
	width: 22px;
}

.bl-planner-book__cover {
	align-items: center;
	background:
		radial-gradient(ellipse 80% 60% at 50% 0%, rgba(200, 154, 61, 0.14), transparent 70%),
		linear-gradient(180deg, #fffef9 0%, #f8f3eb 55%, #f2ebe1 100%);
	border: 2px solid rgba(200, 154, 61, 0.42);
	border-radius: 8px;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.92),
		inset 0 0 80px rgba(200, 154, 61, 0.07),
		0 8px 24px rgba(45, 49, 59, 0.1);
	color: var(--bl-charcoal, #2D313B);
	display: flex;
	justify-content: center;
	min-height: 480px;
	padding: 2rem;
	position: relative;
	text-align: center;
}

.bl-planner-book__cover::before,
.bl-planner-book__cover::after {
	border: 1px solid rgba(200, 154, 61, 0.22);
	content: '';
	height: 28px;
	position: absolute;
	width: 28px;
}

.bl-planner-book__cover::before {
	border-right: 0;
	border-bottom: 0;
	left: 14px;
	top: 14px;
}

.bl-planner-book__cover::after {
	border-left: 0;
	border-top: 0;
	bottom: 14px;
	right: 14px;
}

.bl-planner-book__cover-inner {
	max-width: 320px;
}

.bl-planner-book__cover-mark {
	color: #c89a3d;
	display: block;
	font-size: 1.75rem;
	margin-bottom: 0.85rem;
	text-shadow: 0 2px 8px rgba(200, 154, 61, 0.25);
}

.bl-planner-book__cover-title {
	color: var(--bl-teal, #0D6076);
	font-family: var(--bl-font-heading, Cinzel, serif);
	font-size: 1.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	margin: 0 0 0.35rem;
	text-shadow: 0 2px 12px rgba(13, 96, 118, 0.08);
	text-transform: uppercase;
}

.bl-planner-book__cover-year {
	color: #c89a3d;
	font-family: var(--bl-font-heading, Cinzel, serif);
	font-size: 2.15rem;
	font-weight: 600;
	margin: 0 0 1rem;
	text-shadow: 0 2px 10px rgba(200, 154, 61, 0.2);
}

.bl-planner-book__cover-sub {
	color: rgba(45, 49, 59, 0.72);
	font-size: 0.92rem;
	line-height: 1.5;
	margin: 0 0 1.25rem;
}

.bl-planner-book__cover--inside {
	background: linear-gradient(160deg, #faf8f5 0%, #f3ece2 100%);
	color: var(--bl-charcoal, #2D313B);
}

.bl-planner-book__cover-note {
	color: rgba(45, 49, 59, 0.62);
	font-size: 0.82rem;
	letter-spacing: 0.08em;
	margin: 0 0 0.35rem;
	text-transform: uppercase;
}

.bl-planner-book__cover-owner {
	color: var(--bl-teal, #0D6076);
	font-family: var(--bl-font-heading, Cinzel, serif);
	font-size: 1.45rem;
	margin: 0 0 0.75rem;
}

.bl-planner-book__cover-open {
	margin-top: 0.25rem;
}

.bl-planner-book__notes-area {
	margin-top: 0.35rem;
	position: relative;
}

.bl-planner-book__notes-area--canvas {
	background:
		linear-gradient(180deg, rgba(255, 254, 249, 0.98), rgba(250, 248, 245, 0.96));
	border: 1px solid rgba(200, 154, 61, 0.28);
	border-radius: 12px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 6px 18px rgba(45, 49, 59, 0.05);
	min-height: 280px;
	overflow: hidden;
}

.bl-planner-workspace {
	height: 100%;
	min-height: 280px;
	position: relative;
	width: 100%;
}

.bl-planner-workspace__draw {
	inset: 0;
	height: 100%;
	pointer-events: none;
	position: absolute;
	width: 100%;
	z-index: 1;
}

.bl-planner-workspace__draw.is-draw-active {
	cursor: crosshair;
	pointer-events: auto;
	touch-action: none;
}

.bl-planner-workspace__elements {
	inset: 0;
	min-height: 280px;
	position: absolute;
	z-index: 2;
}

.bl-planner-workspace__elements.is-tool-sticker,
.bl-planner-workspace__elements.is-tool-text {
	cursor: copy;
}

.bl-planner-workspace.is-drag-over {
	box-shadow: inset 0 0 0 2px rgba(200, 154, 61, 0.55);
	background: rgba(200, 154, 61, 0.06);
}

.bl-planner-el__text {
	cursor: text;
}

.bl-planner-el {
	border: 1px solid transparent;
	border-radius: 8px;
	box-sizing: border-box;
	position: absolute;
	touch-action: none;
	transition: box-shadow 0.12s ease, border-color 0.12s ease;
}

.bl-planner-el.is-selected {
	border-color: rgba(200, 154, 61, 0.85);
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.2), 0 8px 20px rgba(45, 49, 59, 0.08);
	z-index: 5;
}

.bl-planner-el__text {
	height: 100%;
	min-height: 1.5em;
	outline: none;
	overflow: auto;
	padding: 0.35rem 0.5rem;
	white-space: pre-wrap;
	width: 100%;
	word-break: break-word;
}

.bl-planner-el--note {
	background: rgba(250, 248, 245, 0.92);
}

.bl-planner-el--sticker {
	align-items: center;
	background: transparent;
	display: flex;
	justify-content: center;
}

.bl-planner-el__sticker {
	font-size: clamp(1.5rem, 4vw, 2.4rem);
	line-height: 1;
	pointer-events: none;
}

.bl-planner-el--checklist {
	background: rgba(255, 255, 255, 0.72);
	padding: 0.45rem 0.55rem;
}

.bl-planner-el__check-item {
	align-items: center;
	display: flex;
	gap: 0.4rem;
	margin-bottom: 0.35rem;
}

.bl-planner-el__check-item input[type="checkbox"] {
	flex-shrink: 0;
	height: 18px;
	width: 18px;
}

.bl-planner-el__check-text {
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(13, 96, 118, 0.15);
	flex: 1;
	font-size: 0.88rem;
	min-height: 32px;
	padding: 0.2rem 0.1rem;
}

.bl-planner-el__add-check {
	background: transparent;
	border: 0;
	color: var(--bl-gold, #C89A3D);
	cursor: pointer;
	font-size: 0.78rem;
	font-weight: 600;
	padding: 0.15rem 0;
}

.bl-planner-el__handle {
	background: var(--bl-gold, #C89A3D);
	border: 2px solid #fff;
	border-radius: 999px;
	height: 12px;
	position: absolute;
	width: 12px;
	z-index: 6;
}

.bl-planner-el__handle--se { bottom: -6px; cursor: se-resize; right: -6px; }
.bl-planner-el__handle--sw { bottom: -6px; cursor: sw-resize; left: -6px; }
.bl-planner-el__handle--ne { cursor: ne-resize; right: -6px; top: -6px; }
.bl-planner-el__handle--nw { cursor: nw-resize; left: -6px; top: -6px; }

.bl-planner-tool-btn {
	background: #fff;
	border: 1px solid rgba(13, 96, 118, 0.16);
	border-radius: 999px;
	color: var(--bl-charcoal, #2D313B);
	cursor: pointer;
	font-size: 0.78rem;
	font-weight: 600;
	min-height: 40px;
	padding: 0.45rem 0.85rem;
	transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.bl-planner-tool-btn:active {
	transform: scale(0.96);
}

.bl-planner-tool-btn--gold {
	background: linear-gradient(180deg, #d4aa52, var(--bl-gold, #C89A3D));
	border-color: rgba(200, 154, 61, 0.65);
	color: #fff;
}

.bl-planner-tool-btn--danger {
	border-color: rgba(139, 41, 66, 0.35);
	color: #8B2942;
}

.bl-planner-draw-tools__row {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.75rem;
	width: 100%;
}

.bl-planner-draw-tools__row--actions {
	align-items: center;
}

.bl-planner-draw-tools__buttons--wrap {
	flex: 1;
}

.bl-planner-text-color,
.bl-planner-highlight-color {
	background: var(--bl-draw-color, #0D6076);
	border: 2px solid rgba(255, 255, 255, 0.9);
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(45, 49, 59, 0.12);
	cursor: pointer;
	height: 28px;
	min-height: 28px;
	min-width: 28px;
	padding: 0;
	width: 28px;
}

.bl-planner-text-color.is-active,
.bl-planner-highlight-color.is-active,
.bl-planner-draw-color.is-active {
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.55);
}

.bl-planner-save-status {
	color: rgba(45, 49, 59, 0.62);
	font-size: 0.78rem;
	font-weight: 600;
	margin: 0;
	min-width: 72px;
}

.bl-planner-save-status.is-saving {
	color: var(--bl-teal, #0D6076);
}

.bl-planner-save-status.is-saved {
	color: #2e7d4a;
}

.bl-planner-save-status.is-error {
	color: #8B2942;
}

.bl-planner-text-size {
	width: 120px;
}

@media (max-width: 720px) {
	.bl-planner-draw-tools {
		gap: 0.65rem;
		padding: 0.65rem 0.7rem;
	}

	.bl-planner-draw-tools__row--actions {
		flex-direction: column;
		align-items: stretch;
	}

	.bl-planner-draw-tools__buttons--wrap {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bl-planner-tool-btn,
	.bl-planner-draw-tool {
		min-height: 44px;
		width: 100%;
	}

	.bl-planner-book__notes-area--canvas,
	.bl-planner-workspace,
	.bl-planner-workspace__elements {
		min-height: 240px;
	}

	.bl-planner-el__handle {
		height: 16px;
		width: 16px;
	}
}

.bl-planner-book__canvas {
	inset: 0;
	min-height: 220px;
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.bl-planner-book.is-sticker-ready .bl-planner-book__canvas,
.bl-planner-book__canvas.is-drag-over {
	pointer-events: auto;
}

.bl-planner-book__canvas.is-drag-over {
	background: rgba(200, 154, 61, 0.08);
	box-shadow: inset 0 0 0 2px rgba(200, 154, 61, 0.45);
	border-radius: 8px;
}

.bl-planner-book__canvas-sticker {
	background: transparent;
	border: 0;
	cursor: default;
	font-size: 1.55rem;
	line-height: 1;
	padding: 0.15rem;
	position: absolute;
	transform: translate(-50%, -50%);
	touch-action: none;
	transition: transform 0.12s ease, filter 0.12s ease;
	z-index: 3;
}

.bl-planner-book__canvas-sticker:hover,
.bl-planner-book__canvas-sticker.is-dragging {
	filter: drop-shadow(0 4px 8px rgba(45, 49, 59, 0.2));
	transform: translate(-50%, -50%) scale(1.12);
	z-index: 4;
}

.bl-planner-book__canvas-sticker.is-dragging {
	cursor: grabbing;
}

.bl-planner-book__canvas-sticker-remove {
	align-items: center;
	background: rgba(45, 49, 59, 0.72);
	border-radius: 999px;
	color: #fff;
	display: none;
	font-size: 0.62rem;
	height: 16px;
	justify-content: center;
	line-height: 1;
	position: absolute;
	right: -4px;
	top: -4px;
	width: 16px;
}

.bl-planner-book__canvas-sticker:hover .bl-planner-book__canvas-sticker-remove,
.bl-planner-book__canvas-sticker:focus-within .bl-planner-book__canvas-sticker-remove {
	display: inline-flex;
}

.bl-planner-book__sheet-head {
	border-bottom: 1px solid rgba(200, 154, 61, 0.22);
	margin-bottom: 0.85rem;
	padding-bottom: 0.65rem;
	text-align: center;
}

.bl-planner-book__sheet-title {
	color: var(--bl-teal, #0D6076);
	font-family: var(--bl-font-heading, Cinzel, serif);
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	margin: 0;
	text-transform: uppercase;
}

.bl-planner-book__sheet-year {
	color: rgba(45, 49, 59, 0.55);
	font-size: 0.82rem;
	margin: 0.15rem 0 0;
}

.bl-planner-book__calendar {
	margin-bottom: 0.85rem;
}

.bl-planner-book__weekdays,
.bl-planner-book__days {
	display: grid;
	gap: 0.25rem;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.bl-planner-book__weekday {
	color: rgba(45, 49, 59, 0.55);
	font-size: 0.68rem;
	font-weight: 600;
	text-align: center;
	text-transform: uppercase;
}

.bl-planner-book__day {
	align-items: center;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(250, 248, 245, 0.88));
	border: 1px solid rgba(13, 96, 118, 0.12);
	border-radius: 10px;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	justify-content: center;
	min-height: 42px;
	padding: 0.15rem;
}

.bl-planner-book__day--pad {
	background: transparent;
	border: 0;
	min-height: 0;
}

.bl-planner-book__day:hover {
	border-color: rgba(200, 154, 61, 0.55);
}

.bl-planner-book__day-num {
	color: var(--bl-charcoal, #2D313B);
	font-size: 0.72rem;
	font-weight: 600;
}

.bl-planner-book__day-stickers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.05rem;
	justify-content: center;
	min-height: 0.85rem;
}

.bl-planner-book__day-sticker {
	cursor: pointer;
	font-size: 0.82rem;
	line-height: 1;
}

.bl-planner-book__lines {
	display: grid;
	gap: 0;
	margin-top: 0.35rem;
	min-height: 220px;
	position: relative;
	z-index: 1;
}

.bl-planner-book__line {
	display: block;
	position: relative;
}

.bl-planner-book__line-rule {
	background: rgba(13, 96, 118, 0.14);
	bottom: 0.35rem;
	display: block;
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
}

.bl-planner-book__line-input {
	background: transparent;
	border: 0;
	color: var(--bl-charcoal, #2D313B);
	font-family: var(--bl-font-body, Montserrat, sans-serif);
	font-size: 0.92rem;
	padding: 0.55rem 0.15rem 0.65rem;
	width: 100%;
}

.bl-planner-book__line-input:focus {
	outline: none;
}

.bl-planner-book__sheet-foot {
	border-top: 1px solid rgba(13, 96, 118, 0.08);
	color: rgba(45, 49, 59, 0.45);
	font-size: 0.72rem;
	margin-top: 0.75rem;
	padding-top: 0.45rem;
	text-align: center;
	text-transform: uppercase;
}

.bl-planner-book__sheet--ideas {
	min-height: 480px;
}

.bl-planner-ideas__toolbar {
	display: grid;
	gap: 0.75rem;
	margin-bottom: 0.85rem;
}

.bl-planner-ideas__field-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.bl-planner-ideas__field-row .bl-input {
	flex: 1 1 180px;
	min-width: 0;
}

.bl-planner-ideas__file {
	font-size: 0.82rem;
	max-width: 100%;
}

.bl-planner-ideas__grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	min-height: 180px;
}

.bl-planner-ideas__pin {
	background: #fff;
	border: 1px solid rgba(13, 96, 118, 0.1);
	border-radius: 10px;
	overflow: hidden;
}

.bl-planner-ideas__pin-image-wrap {
	aspect-ratio: 1;
	position: relative;
}

.bl-planner-ideas__pin-image {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.bl-planner-ideas__pin-remove {
	align-items: center;
	background: rgba(45, 49, 59, 0.78);
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	height: 22px;
	justify-content: center;
	position: absolute;
	right: 0.35rem;
	top: 0.35rem;
	width: 22px;
}

.bl-planner-ideas__pin-meta {
	display: grid;
	gap: 0.2rem;
	padding: 0.45rem 0.5rem 0.55rem;
}

.bl-planner-ideas__badge {
	color: #bd081c;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.bl-planner-ideas__link {
	color: var(--bl-charcoal, #2D313B);
	font-size: 0.72rem;
	line-height: 1.35;
	text-decoration: none;
	word-break: break-word;
}

.bl-planner-ideas__link:hover {
	color: var(--bl-teal, #0D6076);
}

.bl-planner-ideas__empty {
	align-items: center;
	border: 1px dashed rgba(200, 154, 61, 0.45);
	border-radius: 12px;
	color: rgba(45, 49, 59, 0.62);
	display: flex;
	grid-column: 1 / -1;
	justify-content: center;
	min-height: 160px;
	padding: 1rem;
	text-align: center;
}

.bl-planner-book__lines--blank {
	min-height: 420px;
}

.bl-planner-book__line-input--blank {
	font-size: 0.95rem;
}

.bl-planner-book__tabs {
	align-self: start;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	max-height: min( 520px, calc( 100vh - 280px ) );
	overflow-x: hidden;
	overflow-y: auto;
	padding-left: 0.35rem;
	position: relative;
	z-index: 4;
	-webkit-overflow-scrolling: touch;
}

.bl-planner-book__tab-group {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.bl-planner-book__tab-group--months,
.bl-planner-book__tab-group--notes {
	border-top: 1px solid rgba(90, 64, 24, 0.12);
	padding-top: 0.35rem;
}

.bl-planner-book__tab--ideas {
	font-size: 0.82rem;
}

.bl-planner-book__tab--blank {
	font-size: 0.62rem;
	letter-spacing: 0.02em;
}

.bl-planner-book__tab {
	background: linear-gradient(90deg, #ebe3d7, #f7f2ea);
	border: 1px solid rgba(90, 64, 24, 0.18);
	border-left: 0;
	border-radius: 0 8px 8px 0;
	color: rgba(45, 49, 59, 0.72);
	cursor: pointer;
	font-size: 0.68rem;
	font-weight: 700;
	min-height: 28px;
	min-width: 28px;
	padding: 0.15rem 0.35rem;
}

.bl-planner-book__tab.is-active,
.bl-planner-book__tab:hover {
	background: #fffef9;
	border-color: rgba(200, 154, 61, 0.45);
	color: var(--bl-teal, #0D6076);
}

.bl-planner-book__tab--cover {
	font-size: 0.75rem;
}

.bl-planner-book__nav {
	align-items: center;
	background: linear-gradient(180deg, rgba(255, 254, 249, 0.96), rgba(247, 242, 234, 0.92));
	border: 1px solid rgba(200, 154, 61, 0.28);
	border-radius: 14px;
	display: flex;
	gap: 0.75rem;
	justify-content: center;
	margin-top: 0.85rem;
	padding: 0.65rem 0.75rem;
}

.bl-planner-book__turn {
	align-items: center;
	background: linear-gradient(135deg, rgba(13, 96, 118, 0.08), rgba(13, 96, 118, 0.02));
	border: 1px solid rgba(13, 96, 118, 0.18);
	border-radius: 999px;
	color: var(--bl-teal, #0D6076);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--bl-font-body, Montserrat, sans-serif);
	font-size: 0.82rem;
	font-weight: 600;
	gap: 0.35rem;
	min-height: 44px;
	padding: 0.45rem 0.95rem;
	text-transform: uppercase;
	transition: background var(--bl-transition), border-color var(--bl-transition), transform 0.15s ease;
}

.bl-planner-book__turn:hover:not(:disabled) {
	background: linear-gradient(135deg, rgba(200, 154, 61, 0.18), rgba(200, 154, 61, 0.06));
	border-color: rgba(200, 154, 61, 0.45);
}

.bl-planner-book__turn:disabled {
	cursor: not-allowed;
	opacity: 0.45;
}

.bl-planner-book__turn span {
	font-size: 1.1rem;
	line-height: 1;
}

.bl-planner-book__indicator {
	color: rgba(45, 49, 59, 0.72);
	font-size: 0.88rem;
	margin: 0;
	min-width: 160px;
	text-align: center;
}

.bl-planner-book__sticker-sheet {
	background:
		linear-gradient(180deg, rgba(255, 254, 249, 0.98), rgba(247, 242, 234, 0.94)),
		radial-gradient(circle at 20% 10%, rgba(200, 154, 61, 0.08), transparent 45%);
	border: 1px solid rgba(200, 154, 61, 0.32);
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(45, 49, 59, 0.08);
	padding: 1rem 1.1rem;
}

.bl-planner-book__sticker-title {
	color: var(--bl-teal, #0D6076);
	font-family: var(--bl-font-heading, Cinzel, serif);
	font-size: 0.95rem;
	letter-spacing: 0.08em;
	margin: 0 0 0.25rem;
	text-transform: uppercase;
}

.bl-planner-book__sticker-hint {
	color: rgba(45, 49, 59, 0.62);
	font-size: 0.82rem;
	margin: 0 0 0.65rem;
}

.bl-sticker-palette--book {
	margin-top: 0;
}

.bl-planner-horiz-tabs {
	background: linear-gradient(180deg, rgba(255, 254, 249, 0.6), transparent);
	border: 1px solid rgba(200, 154, 61, 0.18);
	border-radius: 14px;
	display: flex;
	flex-wrap: nowrap;
	gap: 0.35rem;
	margin: 0 0 0.85rem;
	overflow-x: auto;
	padding: 0.45rem 0.55rem 0.55rem;
	position: relative;
	scrollbar-width: thin;
	z-index: 4;
	-webkit-overflow-scrolling: touch;
}

.bl-planner-horiz-tabs__group {
	display: inline-flex;
	flex: 0 0 auto;
	gap: 0.3rem;
	padding-right: 0.45rem;
	border-right: 1px solid rgba(13, 96, 118, 0.12);
}

.bl-planner-horiz-tabs__group:last-child {
	border-right: 0;
	padding-right: 0;
}

.bl-planner-horiz-tab {
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid rgba(13, 96, 118, 0.14);
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(45, 49, 59, 0.04);
	color: rgba(45, 49, 59, 0.78);
	cursor: pointer;
	font-size: 0.75rem;
	font-weight: 600;
	min-height: 38px;
	min-width: 38px;
	padding: 0.35rem 0.75rem;
	white-space: nowrap;
}

.bl-planner-horiz-tab.is-active,
.bl-planner-horiz-tab:hover {
	background: linear-gradient(135deg, rgba(200, 154, 61, 0.22), rgba(200, 154, 61, 0.08));
	border-color: rgba(200, 154, 61, 0.55);
	box-shadow: 0 4px 12px rgba(200, 154, 61, 0.15);
	color: var(--bl-teal-deep, #0a4a5c);
}

.bl-planner-draw-tools {
	align-items: center;
	background:
		linear-gradient(180deg, rgba(255, 254, 249, 0.98), rgba(247, 242, 234, 0.95)),
		radial-gradient(circle at 100% 0%, rgba(13, 96, 118, 0.06), transparent 50%);
	border: 1px solid rgba(200, 154, 61, 0.38);
	border-radius: 14px;
	box-shadow: 0 8px 22px rgba(45, 49, 59, 0.06);
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.85rem;
	margin-bottom: 0.85rem;
	padding: 0.75rem 0.9rem;
	position: relative;
	z-index: 4;
}

.bl-planner-draw-tools::before {
	background: linear-gradient(90deg, transparent, rgba(200, 154, 61, 0.45), transparent);
	content: '';
	height: 1px;
	left: 10%;
	position: absolute;
	right: 10%;
	top: 0;
}

.bl-planner-draw-tool {
	background: #fff;
	border: 1px solid rgba(13, 96, 118, 0.14);
	border-radius: 12px;
	box-shadow: 0 2px 6px rgba(45, 49, 59, 0.04);
	cursor: pointer;
	font-size: 1.1rem;
	min-height: 42px;
	min-width: 42px;
	padding: 0.25rem;
	transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}

.bl-planner-draw-tool:active {
	transform: scale(0.94);
}

.bl-planner-draw-tool.is-active {
	border-color: rgba(200, 154, 61, 0.65);
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.18), 0 4px 12px rgba(200, 154, 61, 0.12);
}

.bl-planner-draw-tools__label {
	color: var(--bl-teal, #0D6076);
	font-family: var(--bl-font-heading, Cinzel, serif);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin: 0;
	text-transform: uppercase;
	width: 100%;
}

.bl-planner-draw-tools__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.bl-planner-draw-tools__hint {
	color: rgba(45, 49, 59, 0.62);
	font-size: 0.78rem;
	margin: 0;
	width: 100%;
}

.bl-planner-draw-tools__size,
.bl-planner-draw-tools__font {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 120px;
}

.bl-planner-draw-size {
	width: 120px;
}

.bl-planner-draw-font {
	font-size: 0.78rem;
	min-height: 38px;
	padding: 0.35rem 0.5rem;
}

.bl-planner-book__line-input {
	font-family: var(--bl-font-body, Montserrat, sans-serif);
}

.bl-planner-ideas__field--notes {
	margin-top: 0.75rem;
	width: 100%;
}

.bl-planner-ideas__notes {
	min-height: 120px;
	resize: vertical;
	width: 100%;
}

.bl-planner-draw-tools__colors {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.bl-planner-draw-color {
	background: var(--bl-draw-color, #2D313B);
	border: 2px solid rgba(255, 255, 255, 0.85);
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(13, 96, 118, 0.2);
	cursor: pointer;
	height: 28px;
	min-height: 28px;
	min-width: 28px;
	padding: 0;
	width: 28px;
}

.bl-planner-draw-color.is-active {
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.75);
	transform: scale(1.08);
}

.bl-planner-toolbar__hint.is-save-flash {
	color: var(--bl-teal, #0D6076);
	font-weight: 600;
}

.bl-planner-toolbar__hint.is-save-error {
	color: #8B2942;
	font-weight: 600;
}

.bl-planner-book.is-type-mode .bl-planner-book__lines {
	position: relative;
	z-index: 5;
}

.bl-planner-book.is-type-mode .bl-planner-book__line-input {
	pointer-events: auto;
	position: relative;
	z-index: 6;
}

.bl-planner-book.is-type-mode .bl-planner-book__canvas {
	pointer-events: none !important;
}

.bl-planner-book.is-draw-mode .bl-planner-book__lines {
	pointer-events: none;
}

.bl-planner-book__draw-layer {
	inset: 0;
	pointer-events: none !important;
	position: absolute;
	touch-action: none;
	z-index: 4;
}

.bl-planner-book__draw-layer.is-draw-active {
	pointer-events: auto !important;
}

.bl-planner-book__cover-open,
.bl-planner-horiz-tab,
.bl-planner-book__tab,
.bl-planner-book__turn,
.bl-planner-draw-tool,
.bl-sticker-palette__item {
	cursor: pointer;
	pointer-events: auto;
	position: relative;
	z-index: 5;
}

.bl-planner-export--book {
	justify-content: center;
	margin-top: 0.5rem;
}

.bl-planner-type-pad {
	background: linear-gradient(180deg, rgba(255, 254, 249, 0.98), rgba(247, 242, 234, 0.96));
	border: 1px solid rgba(200, 154, 61, 0.38);
	border-radius: 14px;
	box-shadow: 0 8px 22px rgba(45, 49, 59, 0.06);
	margin-bottom: 0.85rem;
	padding: 0.85rem 1rem;
}

.bl-planner-type-pad__input {
	background: #fff;
	border: 1px solid rgba(13, 96, 118, 0.18);
	border-radius: 10px;
	font-family: var(--bl-font-body, Montserrat, sans-serif);
	font-size: 1rem;
	line-height: 1.5;
	min-height: 110px;
	padding: 0.75rem 0.85rem;
	resize: vertical;
	width: 100%;
}

.bl-planner-type-pad__hint {
	margin: 0.5rem 0 0;
}

.bl-planner-draw-tools__picker input[type="color"] {
	background: transparent;
	border: 2px solid rgba(13, 96, 118, 0.2);
	border-radius: 50%;
	cursor: pointer;
	height: 38px;
	padding: 0;
	width: 38px;
}

.bl-planner-book.is-type-mode .bl-planner-book__line-input {
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(200, 154, 61, 0.35);
	border-radius: 6px;
	box-shadow: inset 0 1px 2px rgba(45, 49, 59, 0.04);
}

.bl-planner-draw-color {
	background: var(--bl-draw-color, #2D313B);
}

@media (min-width: 761px) {
	.bl-planner-book__body {
		grid-template-columns: 18px minmax(0, 1fr);
	}

	.bl-planner-book__tabs {
		display: none;
	}
}

@media (min-width: 960px) {
	.bl-planner-book {
		grid-template-columns: minmax(0, 1fr) 220px;
		max-width: 1120px;
	}

	.bl-planner-book__stage {
		grid-column: 1;
	}

	.bl-planner-book__sticker-sheet {
		grid-column: 2;
		grid-row: 1;
		position: sticky;
		top: 1rem;
		align-self: start;
	}

	.bl-planner-book__body.is-cover-mode {
		min-height: 580px;
	}

	.bl-planner-book__body.is-cover-mode .bl-planner-book__page {
		min-height: 540px;
	}
}

@media (max-width: 760px) {
	.bl-planner-book {
		max-width: 100%;
	}

	.bl-planner-book__stage {
		touch-action: pan-y;
	}

	.bl-planner-book__body {
		grid-template-columns: 12px 1fr;
	}

	.bl-planner-book__tabs {
		display: none;
	}

	.bl-planner-horiz-tabs {
		display: flex;
	}

	.bl-planner-book__page {
		padding: 0.85rem 0.75rem 1rem;
	}

	.bl-planner-book__nav {
		flex-wrap: wrap;
	}
}

/* --------------------------------------------------------------------------
   Brand polish — payments, dashboard, empty states, mobile spacing
   -------------------------------------------------------------------------- */
.bl-portal--brand .bl-portal__panel {
	background: linear-gradient(180deg, var(--off-white) 0%, var(--champagne) 100%);
	border-left: 1px solid rgba(200, 154, 61, 0.22);
}

.bl-portal--brand .bl-summary-card {
	background: linear-gradient(165deg, var(--pearl) 0%, rgba(242, 229, 200, 0.45) 100%);
	border: 1px solid rgba(216, 199, 162, 0.5);
	border-radius: var(--legacy-radius-sm);
}

.bl-portal--brand .bl-summary-card--highlight {
	border-color: rgba(200, 154, 61, 0.55);
	box-shadow: var(--legacy-shadow-gold);
}

.bl-portal--brand .bl-summary-card__label {
	color: var(--legacy-teal);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.68rem;
	font-weight: 600;
}

.bl-portal--brand .bl-summary-card__value--gold {
	color: var(--legacy-gold-deep);
	font-family: var(--legacy-font-heading);
}

.bl-portal--brand #bl-section-payments .bl-card,
.bl-portal--brand #bl-section-proposal .bl-card,
.bl-portal--brand #bl-section-booking .bl-card {
	padding: 1.65rem 1.75rem;
}

.bl-portal--brand .bl-payment-ref strong,
.bl-portal--brand .bl-payment-deposit-amount strong {
	color: var(--legacy-teal);
	font-family: var(--legacy-font-heading);
	letter-spacing: 0.04em;
}

.bl-portal--brand .bl-empty-state {
	background: linear-gradient(165deg, var(--pearl) 0%, var(--champagne) 100%);
	border: 1px dashed rgba(200, 154, 61, 0.45);
	border-radius: var(--legacy-radius);
	padding: 2rem 1.5rem;
	text-align: center;
}

.bl-portal--brand .bl-empty-state__title {
	font-family: var(--legacy-font-heading);
	color: var(--legacy-teal);
	letter-spacing: 0.06em;
}

.bl-portal--brand .bl-empty-state__text {
	color: var(--soft-gray);
	max-width: 36ch;
	margin-left: auto;
	margin-right: auto;
}

.bl-portal--brand .bl-alert,
.bl-portal--brand .bl-booking-alert {
	border-radius: var(--legacy-radius-sm);
	padding: 0.85rem 1rem;
	font-size: 0.875rem;
}

.bl-portal--brand .bl-alert--error,
.bl-portal--brand .bl-booking-alert--error {
	background: rgba(166, 60, 60, 0.08);
	border: 1px solid rgba(166, 60, 60, 0.25);
	color: #7a3030;
}

.bl-portal--brand .bl-alert--success,
.bl-portal--brand .bl-booking-alert--success {
	background: rgba(13, 96, 118, 0.08);
	border: 1px solid rgba(13, 96, 118, 0.22);
	color: var(--legacy-teal-deep);
}

.bl-portal--brand .bl-nav-list__link.is-active {
	background: rgba(200, 154, 61, 0.18);
	border: 1px solid rgba(200, 154, 61, 0.45);
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.bl-portal--brand .bl-divider,
.bl-portal--brand .bl-panel__divider {
	height: 1px;
	border: 0;
	background: linear-gradient(90deg, transparent, rgba(200, 154, 61, 0.55), transparent);
	margin: 1rem 0;
	position: relative;
}

.bl-portal--brand .bl-divider::after,
.bl-portal--brand .bl-panel__divider::after {
	content: "◆";
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	font-size: 0.45rem;
	color: var(--legacy-gold);
	background: var(--off-white);
	padding: 0 0.45rem;
}

@media (max-width: 768px) {
	.bl-portal--brand .bl-portal__content {
		padding: 1.15rem 1rem calc(var(--bl-mobile-nav-height) + 1.5rem);
	}

	.bl-portal--brand .bl-card {
		padding: 1.25rem 1.15rem;
	}

	.bl-portal--brand .bl-section__header {
		margin-bottom: 1.35rem;
	}

	.bl-portal--brand .bl-form-row + .bl-form-row {
		margin-top: 0.15rem;
	}

	.bl-auth-gate--brand .bl-auth-gate__card {
		padding: 1.75rem 1.35rem;
	}
}

/* --------------------------------------------------------------------------
   Fine-tune pass — balance, rhythm, interaction polish
   -------------------------------------------------------------------------- */
.bl-portal--brand .bl-portal__content {
	padding: 1.65rem 2rem 2.25rem;
}

.bl-portal--brand .bl-section + .bl-section {
	margin-top: 0;
}

.bl-portal--brand .bl-stat-card {
	background: var(--legacy-card-bg);
	border-color: rgba(216, 199, 162, 0.42);
}

.bl-portal--brand .bl-journey-card .bl-steps__item {
	padding: 1.1rem 0;
}

.bl-portal--brand .bl-steps__content strong {
	color: var(--legacy-teal);
	font-size: 0.9375rem;
	letter-spacing: 0.03em;
}

.bl-portal--brand .bl-portal-step-bar {
	background: rgba(252, 251, 249, 0.92);
	border-color: rgba(200, 154, 61, 0.22);
	box-shadow: var(--legacy-shadow);
}

.bl-portal--brand .bl-portal-step-bar__btn {
	background: var(--pearl);
	border-color: rgba(216, 199, 162, 0.45);
	color: var(--charcoal);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.bl-portal--brand .bl-portal-step-bar__btn:hover,
.bl-portal--brand .bl-portal-step-bar__btn:focus-visible {
	border-color: var(--legacy-gold);
	color: var(--legacy-teal);
	background: rgba(242, 229, 200, 0.35);
}

.bl-portal--brand .bl-messages__compose {
	border-top-color: rgba(200, 154, 61, 0.28);
}

.bl-portal--brand .bl-nav-list__link.is-active {
	color: var(--champagne);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.bl-portal--brand .bl-header__title {
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	color: var(--legacy-teal);
}

.bl-portal--brand .bl-booking-flow.is-loading {
	opacity: 0.72;
	pointer-events: none;
	filter: saturate(0.92);
}

.bl-portal--brand .bl-checkbox span {
	line-height: 1.5;
}

.bl-portal--brand .bl-checkbox input:focus-visible {
	outline: 2px solid var(--legacy-gold);
	outline-offset: 2px;
}

.bl-portal--brand .bl-addon-card:hover {
	border-color: rgba(200, 154, 61, 0.55);
	box-shadow: var(--legacy-shadow-gold);
}

.bl-portal--brand .bl-document-row {
	background: var(--pearl);
	border-color: rgba(216, 199, 162, 0.45);
}

.bl-auth-gate--brand .bl-auth-gate__card {
	box-shadow: var(--legacy-shadow);
}

.bl-auth-gate--brand .bl-auth-tab.is-active {
	color: var(--legacy-teal);
	border: 1px solid rgba(200, 154, 61, 0.22);
}

@media (max-width: 768px) {
	.bl-portal--brand .bl-grid {
		gap: 1rem;
	}

	.bl-portal--brand .bl-section__title {
		font-size: 1.15rem;
	}

	.bl-portal--brand .bl-section__desc {
		font-size: 0.9rem;
		max-width: none;
		padding: 0 0.25rem;
	}

	.bl-portal--brand .bl-card::before,
	.bl-portal--brand .bl-card::after {
		width: 11px;
		height: 11px;
	}

	.bl-portal--brand .bl-mobile-nav {
		border-radius: 20px 20px 0 0;
	}

	.bl-portal--brand .bl-btn--gold,
	.bl-portal--brand .bl-btn--outline {
		width: 100%;
		max-width: 100%;
	}

	/* Action bar layout — luxury-design-system.css §31.6–31.7 */
}

/* --------------------------------------------------------------------------
   Planner Phase 1 (v2) — functional layout only
   -------------------------------------------------------------------------- */
.bl-planner-v2-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-bottom: 1rem;
	padding: 0.75rem 1rem;
	background: rgba(250, 248, 245, 0.95);
	border: 1px solid rgba(200, 154, 61, 0.28);
	border-radius: 4px;
}

.bl-planner-v2-toolbar__sep {
	width: 1px;
	height: 1.5rem;
	background: rgba(200, 154, 61, 0.35);
	margin: 0 0.25rem;
}

.bl-planner-v2-color {
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	border: 2px solid rgba(45, 49, 59, 0.2);
	background: var(--bl-draw-color, #0d6076);
	cursor: pointer;
	padding: 0;
}

.bl-planner-v2-color.is-active {
	border-color: #c89a3d;
	box-shadow: 0 0 0 2px rgba(200, 154, 61, 0.35);
}

.bl-planner-v2-wrap {
	position: relative;
	width: 100%;
}

.bl-planner-v2-canvas {
	position: relative;
	width: 100%;
	min-height: 360px;
	background: #faf8f5;
	border: 1px solid rgba(200, 154, 61, 0.35);
	border-radius: 4px;
	overflow: hidden;
	touch-action: none;
}

.bl-planner-v2-canvas__paper {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(rgba(13, 96, 118, 0.06) 1px, transparent 1px);
	background-size: 100% 28px;
}

.bl-planner-v2-elements {
	position: absolute;
	inset: 0;
	z-index: 2;
}

.bl-planner-v2-el {
	position: absolute;
	cursor: grab;
	padding: 4px;
	border: 1px dashed transparent;
	border-radius: 2px;
	touch-action: none;
}

.bl-planner-v2-el.is-selected {
	border-color: rgba(200, 154, 61, 0.75);
	background: rgba(200, 154, 61, 0.06);
}

.bl-planner-v2-text {
	min-height: 1.5em;
	outline: none;
	cursor: text;
	white-space: pre-wrap;
	word-break: break-word;
	line-height: 1.35;
}

.bl-planner-v2-el:active {
	cursor: grabbing;
}

#bl-planner-save-status.is-saving {
	color: #0d6076;
}

#bl-planner-save-status.is-saved {
	color: #2d313b;
}

#bl-planner-save-status.is-error {
	color: #8b2942;
}

/* BLCEP interactive planner + mobile reliability overrides */
.bl-planner-v2-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.bl-planner-toolbar-group {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: nowrap;
}
.bl-planner-toolbar-label { font-size: .78rem; font-weight: 700; color: var(--bl-teal-deep, #075a6c); }
.bl-planner-toolbar-select { min-height: 42px; border: 1px solid rgba(7,90,108,.28); border-radius: 10px; padding: 6px 10px; background: #fff; }
.bl-planner-sticker-row { max-width: 100%; overflow-x: auto; padding-bottom: 3px; }
.bl-planner-sticker-btn {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(199,154,53,.38);
	border-radius: 12px;
	background: rgba(255,255,255,.88);
	font-size: 1.35rem;
	cursor: pointer;
}
.bl-planner-v2-el--sticker { cursor: grab; touch-action: none; user-select: none; }
.bl-planner-v2-el--sticker:active { cursor: grabbing; }
.bl-planner-v2-sticker { display: grid; place-items: center; width: 100%; height: 100%; font-size: clamp(1.5rem, 7vw, 4rem); line-height: 1; pointer-events: none; }
.bl-planner-v2-el.is-selected { outline: 2px solid #C89A3D; outline-offset: 4px; }
.bl-planner-v2-text { min-height: 100%; width: 100%; overflow-wrap: anywhere; }

@media (max-width: 767px) {
	.bl-portal, .bl-main, .bl-section, .bl-luxury-card { max-width: 100%; min-width: 0; }
	.bl-main { overflow-x: clip; }
	.bl-btn, button, [role="button"] { min-height: 44px; }
	.bl-action-bar .bl-btn, .bl-booking-actions .bl-btn { width: 100%; min-height: 52px; }
	.bl-planner-v2-toolbar { display: block; white-space: nowrap; padding-bottom: 8px; }
	.bl-planner-toolbar-group { display: inline-flex; margin-right: 10px; vertical-align: middle; }
	.bl-planner-v2-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.bl-planner-v2-canvas { min-width: 320px; touch-action: pan-y; }
	.bl-planner-v2-elements { touch-action: pan-y; }
	.bl-planner-v2-el { touch-action: none; }
	.bl-stepper, .bl-booking-stepper { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
	.bl-stepper::-webkit-scrollbar, .bl-booking-stepper::-webkit-scrollbar { display: none; }
}

/* Planner 2.35.2 — multi-page tools, notes and checklists */
.bl-planner-page-controls {
	padding: 6px 10px;
	border: 1px solid rgba(13, 96, 118, .16);
	border-radius: 12px;
	background: rgba(255,255,255,.72);
}
.bl-planner-page-label {
	min-width: 44px;
	text-align: center;
	font-size: .78rem;
	font-weight: 700;
	color: #6f777a;
}
.bl-planner-v2-color--none {
	display: inline-grid;
	place-items: center;
	background: #fff;
	color: #8b2942;
	font-weight: 800;
}
.bl-planner-v2-text:empty::before {
	content: attr(data-placeholder);
	color: rgba(45,49,59,.38);
	pointer-events: none;
}
.bl-planner-v2-el--note .bl-planner-v2-text {
	padding: 12px;
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(3,61,74,.08);
}
.bl-planner-v2-el--checklist {
	padding: 10px;
	background: rgba(255,255,255,.9);
	border-radius: 12px;
	box-shadow: 0 8px 22px rgba(3,61,74,.08);
	overflow: auto;
}
.bl-planner-v2-checklist {
	display: grid;
	gap: 8px;
}
.bl-planner-v2-checkline {
	display: grid;
	grid-template-columns: 22px minmax(0,1fr);
	align-items: center;
	gap: 8px;
}
.bl-planner-v2-checkline input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: #0D6076;
}
.bl-planner-v2-checkline input[type="text"] {
	width: 100%;
	min-height: 36px;
	padding: 6px 8px;
	border: 0;
	border-bottom: 1px solid rgba(13,96,118,.2);
	background: transparent;
	font: inherit;
}
.bl-planner-check-add {
	justify-self: start;
	min-height: 36px;
	padding: 6px 10px;
	border: 1px solid rgba(13,96,118,.22);
	border-radius: 9px;
	background: #fff;
	color: #075a6c;
	font-weight: 700;
}
@media (max-width: 767px) {
	.bl-planner-page-controls {
		display: inline-flex;
		max-width: calc(100vw - 42px);
	}
	#bl-planner-page-select {
		max-width: 145px;
	}
	.bl-planner-v2-canvas {
		min-height: 520px;
	}
	.bl-planner-v2-el--checklist {
		min-width: 220px;
	}
}


/* Luxury interactive sticker library */
.bl-sticker-library[hidden] { display: none !important; }
.bl-sticker-library { position: fixed; inset: 0; z-index: 100000; display: grid; justify-items: end; }
.bl-sticker-library__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(3, 35, 43, .48); backdrop-filter: blur(4px); cursor: default; }
.bl-sticker-library__panel { position: relative; width: min(430px, 94vw); height: 100dvh; overflow-y: auto; padding: 24px; background: linear-gradient(160deg,#fffdf9,#f7f3ea); border-left: 1px solid rgba(200,154,61,.48); box-shadow: -24px 0 64px rgba(3,61,74,.22); }
.bl-sticker-library__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid rgba(13,96,118,.16); }
.bl-sticker-library__header h3 { margin: 4px 0 0; font-family: "Cormorant Garamond",Georgia,serif; font-size: 2rem; color: #033d4a; }
.bl-sticker-library__tabs { display: flex; gap: 8px; overflow-x: auto; padding: 18px 0 12px; scrollbar-width: thin; }
.bl-sticker-library__tab { min-height: 42px; padding: 8px 14px; border: 1px solid rgba(13,96,118,.18); border-radius: 999px; background: #fff; color: #075a6c; font-weight: 700; white-space: nowrap; cursor: pointer; }
.bl-sticker-library__tab.is-active { color: #292d32; border-color: #c89a3d; background: linear-gradient(135deg,#f7e2a2,#c89a3d); }
.bl-sticker-library__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 8px 0 20px; }
.bl-sticker-library__item { min-width: 0; min-height: 132px; display: grid; align-content: center; justify-items: center; gap: 8px; padding: 12px 8px; border: 1px solid rgba(200,154,61,.32); border-radius: 16px; background: rgba(255,255,255,.88); color: #033d4a; font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.bl-sticker-library__item:hover,.bl-sticker-library__item:focus-visible { transform: translateY(-3px); border-color: #c89a3d; box-shadow: 0 12px 26px rgba(3,61,74,.12); outline: none; }
.bl-sticker-library__item img { width: 82px; height: 82px; object-fit: contain; pointer-events: none; }
.bl-sticker-library__item[hidden] { display: none !important; }
.bl-sticker-library__hint { margin: 0; padding: 14px; border-radius: 14px; background: rgba(220,236,239,.52); color: #3d555d; font-size: .86rem; }
.bl-sticker-library-open { overflow: hidden; }
.bl-planner-v2-sticker-image { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; }
.bl-planner-v2-el--sticker { filter: drop-shadow(0 7px 7px rgba(55,42,24,.15)); }
@media (max-width: 767px) {
 .bl-sticker-library { align-items: end; }
 .bl-sticker-library__panel { width: 100%; height: min(74dvh,680px); border-left: 0; border-top: 1px solid rgba(200,154,61,.48); border-radius: 24px 24px 0 0; padding: 20px 16px calc(20px + env(safe-area-inset-bottom)); }
 .bl-sticker-library__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .bl-sticker-library__item { min-height: 112px; }
 .bl-sticker-library__item img { width: 68px; height: 68px; }
}
@media (max-width: 370px) { .bl-sticker-library__grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }


/* Planner 2.35.4 — reliable text and marker color controls. */
.bl-planner-color-picker {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(7, 90, 108, .24);
	border-radius: 50%;
	background: #fffdf9;
	box-shadow: 0 3px 10px rgba(3, 61, 74, .08);
	cursor: pointer;
	overflow: hidden;
}
.bl-planner-color-picker input[type="color"] {
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.bl-planner-v2-color[aria-pressed="true"],
.bl-planner-v2-color.is-active {
	outline: 3px solid rgba(7, 90, 108, .30);
	outline-offset: 2px;
	transform: scale(1.08);
}
.bl-planner-v2-checklist {
	border-radius: 10px;
	padding: 8px;
}
@media (max-width: 767px) {
	.bl-planner-color-picker,
	.bl-planner-v2-color { min-width: 42px; min-height: 42px; }
}

/* ========================================================================== 
   Mobile Luxury Polish — v2.35.5
   Scoped overrides loaded last to normalize sizing, spacing, hierarchy,
   and thumb-safe actions across the client portal.
   ========================================================================== */
@media (max-width: 768px) {
	.bl-portal {
		--bl-mobile-edge: clamp(14px, 4vw, 20px);
		--bl-mobile-radius: 20px;
		--bl-mobile-control: 52px;
		font-size: 16px;
		line-height: 1.6;
		background:
			radial-gradient(circle at 92% 0%, rgba(185, 227, 235, 0.26), transparent 26%),
			linear-gradient(180deg, #fffdf9 0%, #f7f3ea 100%);
	}

	.bl-portal__main,
	.bl-portal__body,
	.bl-portal__content,
	.bl-section,
	.bl-card,
	.bl-form,
	.bl-form-row,
	.bl-form-grid,
	.bl-grid,
	.bl-panel {
		min-width: 0;
		max-width: 100%;
	}

	.bl-portal__content {
		padding: 18px var(--bl-mobile-edge) calc(var(--bl-mobile-nav-height) + 38px + env(safe-area-inset-bottom));
	}

	.bl-section {
		padding: 0;
	}

	.bl-section__header {
		display: block;
		margin: 0 0 18px;
		padding: 0 2px 15px;
		border-bottom: 1px solid rgba(7, 90, 108, 0.14);
	}

	.bl-section__title {
		font-size: clamp(1.7rem, 8vw, 2.2rem);
		line-height: 1.08;
		letter-spacing: 0.025em;
	}

	.bl-section__desc {
		margin-top: 8px;
		font-size: 0.96rem;
		line-height: 1.6;
		color: rgba(45, 49, 56, 0.72);
	}

	.bl-card,
	.bl-luxury-card,
	.bl-panel,
	.bl-guidance-card,
	.bl-empty-state {
		margin-bottom: 16px;
		padding: 20px 17px;
		border: 1px solid rgba(199, 154, 53, 0.28);
		border-radius: var(--bl-mobile-radius);
		background: linear-gradient(145deg, rgba(255,255,255,0.98), rgba(250,247,239,0.96));
		box-shadow: 0 10px 28px rgba(3, 61, 74, 0.08);
	}

	.bl-card::before,
	.bl-luxury-card::before {
		inset: 7px;
		border-radius: calc(var(--bl-mobile-radius) - 7px);
	}

	.bl-card__title,
	.bl-panel__title {
		font-size: 1.35rem;
		line-height: 1.2;
		letter-spacing: 0.025em;
	}

	.bl-card__subtitle {
		font-size: 1.05rem;
		line-height: 1.3;
	}

	.bl-card__text,
	.bl-card p,
	.bl-panel p {
		font-size: 0.95rem;
		line-height: 1.65;
	}

	.bl-form-grid,
	.bl-form-row,
	.bl-grid--2,
	.bl-grid--3,
	.bl-content-grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 15px;
	}

	.bl-field,
	.bl-form-field {
		gap: 7px;
	}

	.bl-field label,
	.bl-form-field label,
	.bl-label {
		font-size: 0.88rem;
		font-weight: 700;
		letter-spacing: 0.015em;
		color: var(--bl-teal-deep);
	}

	.bl-portal input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
	.bl-portal select,
	.bl-portal textarea {
		width: 100%;
		min-height: 52px;
		padding: 13px 14px;
		font-size: 16px;
		line-height: 1.4;
		border: 1px solid rgba(7, 90, 108, 0.25);
		border-radius: 13px;
		background: rgba(255,255,255,0.96);
		box-shadow: inset 0 1px 0 rgba(255,255,255,0.86);
	}

	.bl-portal textarea {
		min-height: 132px;
		resize: vertical;
	}

	.bl-portal input:focus,
	.bl-portal select:focus,
	.bl-portal textarea:focus {
		outline: 3px solid rgba(185, 227, 235, 0.68);
		outline-offset: 1px;
		border-color: var(--bl-teal);
	}

	.bl-btn,
	.bl-portal button.bl-btn,
	.bl-portal a.bl-btn {
		width: 100%;
		min-height: var(--bl-mobile-control);
		padding: 13px 16px;
		border-radius: 14px;
		font-size: 0.82rem;
		font-weight: 800;
		line-height: 1.2;
		letter-spacing: 0.055em;
		white-space: normal;
		text-align: center;
		touch-action: manipulation;
	}

	.bl-btn--sm,
	.bl-header__actions .bl-btn--sm {
		width: auto;
		min-width: 44px;
		min-height: 44px;
		padding: 9px 12px;
		font-size: 0.75rem;
	}

	.bl-btn--gold {
		box-shadow: 0 10px 24px rgba(159, 116, 32, 0.22);
	}

	.bl-btn--outline {
		background: rgba(255,255,255,0.82);
	}

	.bl-form-actions,
	.bl-form-actions--between,
	.bl-form-actions--primary,
	.bl-proposal-actions,
	.bl-booking-confirmed-actions,
	.bl-booking-confirmed__cta,
	.bl-panel__actions,
	.bl-planner-export {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		width: 100%;
	}

	.bl-form-actions--between > *,
	.bl-form-actions--primary > * {
		width: 100%;
	}

	/* Visual priority: primary action first on mobile, without changing DOM order. */
	.bl-form-actions .bl-btn--gold,
	.bl-proposal-actions .bl-btn--gold,
	.bl-booking-confirmed-actions .bl-btn--gold {
		order: -10;
	}

	.bl-form-actions .bl-btn--outline,
	.bl-proposal-actions .bl-btn--outline {
		order: -5;
	}

	.bl-form-actions .bl-btn--ghost {
		order: 5;
	}

	.bl-booking-steps {
		margin: 0 -2px 16px;
		padding: 2px 2px 8px;
		gap: 8px;
		scroll-snap-type: x mandatory;
	}

	.bl-booking-steps__item,
	.bl-step {
		flex: 0 0 min(78vw, 265px);
		min-height: 58px;
		padding: 12px 14px;
		border-radius: 15px;
		scroll-snap-align: start;
	}

	.bl-package-card,
	.bl-addon-card,
	.bl-choice-card,
	.bl-summary-card {
		min-width: 0;
		padding: 17px;
		border-radius: 17px;
	}

	.bl-package-grid,
	.bl-addon-grid,
	.bl-choice-grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 13px;
	}

	.bl-price-row,
	.bl-summary-row {
		align-items: flex-start;
		gap: 16px;
	}

	.bl-price-row > :last-child,
	.bl-summary-row > :last-child {
		flex: 0 0 auto;
		text-align: right;
	}

	.bl-alert,
	.bl-booking-alert,
	.bl-booking-readonly-banner,
	.bl-booking-revise-banner {
		padding: 14px 15px;
		border-radius: 14px;
		font-size: 0.92rem;
		line-height: 1.55;
	}

	.bl-modal,
	.bl-modal__dialog,
	.bl-drawer,
	.bl-sheet {
		max-width: calc(100vw - 24px);
		max-height: calc(100dvh - 24px - env(safe-area-inset-bottom));
		border-radius: 20px;
	}

	.bl-header {
		min-height: 64px;
		padding: 10px 12px;
		background: rgba(255,253,249,0.96);
		border-bottom: 1px solid rgba(199,154,53,0.25);
		backdrop-filter: blur(12px);
	}

	.bl-header__title {
		font-size: 1.05rem;
		letter-spacing: 0.025em;
	}

	.bl-mobile-nav {
		padding-inline: 7px;
	}

	.bl-mobile-nav__item {
		min-height: 58px;
		padding: 6px 3px;
		border-radius: 13px;
	}

	.bl-mobile-nav__label {
		max-width: 100%;
		font-size: 0.64rem;
		line-height: 1.15;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* Planner: compact premium controls, horizontal tools, and stable canvas width. */
	#bl-section-event-planner .bl-card,
	#bl-section-event-planner .bl-planner-toolbar,
	#bl-section-event-planner .bl-planner-draw-tools {
		padding: 14px;
	}

	.bl-planner-toolbar__row,
	.bl-planner-draw-tools__row {
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		padding-bottom: 7px;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.bl-planner-toolbar__row::-webkit-scrollbar,
	.bl-planner-draw-tools__row::-webkit-scrollbar {
		display: none;
	}

	.bl-planner-tool-btn,
	.bl-planner-draw-tool,
	.bl-planner-year-pill,
	.bl-planner-category-chip {
		flex: 0 0 auto;
		width: auto !important;
		min-width: 48px;
		min-height: 46px;
		padding: 10px 13px;
		border-radius: 13px;
		font-size: 0.76rem;
		white-space: nowrap;
		scroll-snap-align: start;
	}

	.bl-planner-text-color,
	.bl-planner-highlight-color,
	.bl-planner-draw-color,
	.bl-planner-custom-color {
		flex: 0 0 38px;
		width: 38px;
		height: 38px;
		min-width: 38px;
		min-height: 38px;
	}

	.bl-planner-book,
	.bl-planner-book__stage,
	.bl-planner-book__body,
	.bl-planner-book__spread,
	.bl-planner-workspace {
		max-width: 100%;
	}

	.bl-planner-book__stage {
		overflow-x: auto;
		overflow-y: visible;
		-webkit-overflow-scrolling: touch;
	}

	.bl-planner-book__body {
		min-width: 700px;
		transform-origin: top left;
	}

	.bl-sticker-panel,
	.bl-sticker-library {
		max-width: 100vw;
	}

	.bl-sticker-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 10px;
	}

	.bl-sticker-option {
		min-width: 0;
		min-height: 92px;
		padding: 8px;
		border-radius: 14px;
	}

	.bl-sticker-option img {
		width: 58px;
		height: 58px;
	}
}

@media (max-width: 430px) {
	.bl-portal {
		--bl-mobile-edge: 13px;
	}

	.bl-card,
	.bl-luxury-card,
	.bl-panel,
	.bl-guidance-card,
	.bl-empty-state {
		padding: 18px 15px;
		border-radius: 18px;
	}

	.bl-section__title {
		font-size: 1.78rem;
	}

	.bl-btn,
	.bl-portal button.bl-btn,
	.bl-portal a.bl-btn {
		min-height: 54px;
		font-size: 0.79rem;
	}

	.bl-mobile-nav__label {
		font-size: 0.6rem;
	}

	.bl-sticker-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 360px) {
	.bl-portal {
		--bl-mobile-edge: 11px;
	}

	.bl-card,
	.bl-luxury-card,
	.bl-panel,
	.bl-guidance-card,
	.bl-empty-state {
		padding: 16px 13px;
	}

	.bl-mobile-nav__label {
		display: none;
	}

	.bl-mobile-nav__item {
		min-height: 54px;
	}

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


/* === BLCEP 3.0.1 Luxury Planner + Sticker Studio === */
.bl-section--planner-v2 { background: linear-gradient(145deg,#fff 0%,#fcfaf6 55%,#fff 100%); }
.bl-section--planner-v2 .bl-section__header { max-width: 920px; margin: 0 auto 22px; text-align:center; }
.bl-section--planner-v2 .bl-section__title { font-family:"Cormorant Garamond",Georgia,serif; color:#054d5f; font-size:clamp(2rem,5vw,3.25rem); }
.bl-planner-v2-toolbar { background:rgba(255,255,255,.97); border:1px solid rgba(199,154,53,.34); border-radius:24px; box-shadow:0 18px 45px rgba(3,61,74,.09); padding:18px; }
.bl-planner-toolbar-group { gap:10px; }
.bl-planner-tool-btn { min-height:46px; border-radius:13px; border:1px solid rgba(7,90,108,.18); background:#fff; color:#054d5f; font-weight:750; }
.bl-planner-tool-btn:hover:not(:disabled),.bl-planner-tool-btn:focus-visible { border-color:#c79a35; box-shadow:0 8px 20px rgba(199,154,53,.14); transform:translateY(-1px); }
.bl-planner-tool-btn--gold { background:linear-gradient(135deg,#ead7a5,#c79a35,#9c7423); color:#25282b; border-color:#9c7423; }
.bl-planner-v2-wrap { margin-top:20px; padding:clamp(12px,2.5vw,28px); background:linear-gradient(145deg,#f7f2e8,#fff); border:1px solid rgba(199,154,53,.28); border-radius:28px; box-shadow:0 20px 55px rgba(3,61,74,.08); }
.bl-planner-v2-canvas { position:relative; overflow:hidden; background:#fffdf8; border:1px solid rgba(199,154,53,.5); border-radius:22px; box-shadow:inset 0 0 0 7px rgba(255,255,255,.8), inset 0 0 0 8px rgba(7,90,108,.10); }
.bl-planner-v2-canvas__paper { background:linear-gradient(rgba(255,253,248,.88),rgba(255,253,248,.88)), repeating-linear-gradient(0deg,transparent 0 31px,rgba(199,154,53,.13) 31px 32px); pointer-events:none; }
.bl-planner-v2-el { border-radius:12px; transition:box-shadow .18s ease,outline .18s ease; }
.bl-planner-v2-el.is-selected { outline:2px solid #c79a35; outline-offset:4px; box-shadow:0 10px 24px rgba(199,154,53,.18); }
.bl-planner-v2-el.is-locked::after { content:"🔒"; position:absolute; right:-10px; top:-12px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#fff; border:1px solid #c79a35; font-size:13px; box-shadow:0 5px 14px rgba(0,0,0,.12); }
.bl-sticker-library__panel { background:linear-gradient(145deg,#fff,#fcfaf6); border-left:1px solid rgba(199,154,53,.42); }
.bl-sticker-library__search { display:block; margin:14px 0; }
.bl-sticker-library__search input { width:100%; min-height:50px; border-radius:14px; border:1px solid rgba(7,90,108,.23); background:#fff; padding:12px 15px; font-size:16px; color:#2d313b; }
.bl-sticker-library__search input:focus { outline:3px solid rgba(234,215,165,.7); border-color:#c79a35; }
.bl-sticker-library__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.bl-sticker-library__item { min-height:118px; background:#fff; border:1px solid rgba(199,154,53,.28); border-radius:18px; padding:10px; box-shadow:0 8px 20px rgba(3,61,74,.05); }
.bl-sticker-library__item:hover { border-color:#c79a35; transform:translateY(-2px); box-shadow:0 12px 28px rgba(199,154,53,.15); }
.bl-sticker-library__item img { width:68px; height:68px; object-fit:contain; }
.bl-sticker-library__item span { color:#054d5f; font-size:.78rem; font-weight:750; }
@media(max-width:767px){
 .bl-planner-v2-toolbar{padding:12px;border-radius:20px;position:relative;}
 .bl-planner-toolbar-group{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px;scroll-snap-type:x proximity;}
 .bl-planner-tool-btn{flex:0 0 auto;min-height:50px;padding:10px 14px;scroll-snap-align:start;}
 .bl-planner-v2-wrap{padding:8px;border-radius:20px;margin-inline:-4px;}
 .bl-planner-v2-canvas{min-height:520px!important;border-radius:16px;}
 .bl-sticker-library__panel{height:min(78dvh,680px);border-radius:25px 25px 0 0;}
 .bl-sticker-library__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;}
 .bl-sticker-library__item{min-height:104px;padding:7px;}
 .bl-sticker-library__item img{width:58px;height:58px;}
}
@media(max-width:370px){.bl-sticker-library__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}


/* Planner v3.0.3 — dated pages, controlled tool layout and page-turn motion */
.bl-planner-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.bl-planner-event-date{flex:0 0 auto;display:grid;gap:3px;min-width:190px;padding:14px 18px;text-align:right;background:#fff;border:1px solid rgba(199,154,53,.36);border-radius:18px;box-shadow:0 10px 28px rgba(3,61,74,.07)}.bl-planner-event-date span{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:#8c6a20;font-weight:800}.bl-planner-event-date strong{font-family:"Cormorant Garamond",Georgia,serif;color:#054d5f;font-size:1.2rem}.bl-planner-v3-shell{display:grid;gap:16px}.bl-planner-pagebar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1px solid rgba(199,154,53,.36);border-radius:22px;box-shadow:0 14px 36px rgba(3,61,74,.07)}.bl-planner-pagebar__center{display:flex;justify-content:center;align-items:center;gap:10px;min-width:0}.bl-planner-pagebar__center label{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#8c6a20}.bl-planner-page-turn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 16px;border:1px solid rgba(7,90,108,.25);border-radius:14px;background:#fff;color:#054d5f;font:inherit;font-weight:800;cursor:pointer}.bl-planner-page-turn--next{background:linear-gradient(135deg,#ead7a5,#c79a35);border-color:#9f7420;color:#262626;box-shadow:0 8px 20px rgba(159,116,32,.17)}.bl-planner-page-turn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.bl-planner-v2-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:start;gap:12px!important;padding:14px!important}.bl-planner-toolbar-section{min-width:0}.bl-planner-toolbar-heading{display:block;margin-bottom:8px;font-size:.68rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:#8c6a20}.bl-planner-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.bl-planner-toolbar-menu{position:relative}.bl-planner-toolbar-menu>summary{list-style:none;min-height:44px;display:flex;align-items:center;padding:10px 14px;border:1px solid rgba(7,90,108,.22);border-radius:13px;background:#fff;color:#054d5f;font-weight:800;cursor:pointer;white-space:nowrap}.bl-planner-toolbar-menu>summary::-webkit-details-marker{display:none}.bl-planner-toolbar-menu[open]>summary{border-color:#c79a35;background:#fcfaf6}.bl-planner-toolbar-menu__body{position:absolute;right:0;top:calc(100% + 8px);z-index:80;width:min(440px,86vw);display:grid;gap:14px;padding:16px;background:#fff;border:1px solid rgba(199,154,53,.38);border-radius:18px;box-shadow:0 20px 50px rgba(3,61,74,.16)}.bl-planner-toolbar-menu__body--buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-planner-toolbar-field{display:grid;gap:6px}.bl-planner-toolbar-field>span,.bl-planner-color-group>span{font-size:.72rem;font-weight:800;color:#054d5f}.bl-planner-compact-actions,.bl-planner-color-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bl-planner-savebar{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:130px}.bl-planner-savebar .bl-planner-save-status{margin:0;font-size:.78rem;white-space:nowrap}.bl-planner-book{position:relative;perspective:1600px;transform-style:preserve-3d}.bl-planner-book.is-turning-next .bl-planner-v2-canvas{animation:blPlannerTurnNext .42s cubic-bezier(.35,.05,.2,1)}.bl-planner-book.is-turning-prev .bl-planner-v2-canvas{animation:blPlannerTurnPrev .42s cubic-bezier(.35,.05,.2,1)}@keyframes blPlannerTurnNext{0%{transform:rotateY(0);opacity:1}46%{transform:rotateY(-12deg) translateX(-2%);opacity:.45}54%{transform:rotateY(10deg) translateX(2%);opacity:.45}100%{transform:rotateY(0);opacity:1}}@keyframes blPlannerTurnPrev{0%{transform:rotateY(0);opacity:1}46%{transform:rotateY(12deg) translateX(2%);opacity:.45}54%{transform:rotateY(-10deg) translateX(-2%);opacity:.45}100%{transform:rotateY(0);opacity:1}}.bl-planner-page-curl{position:absolute;right:4px;bottom:4px;width:48px;height:48px;pointer-events:none;background:linear-gradient(135deg,transparent 49%,rgba(199,154,53,.18) 50%,rgba(255,255,255,.96) 72%);border-radius:0 0 18px 0}.bl-planner-v2-canvas__paper{padding:24px 28px!important;background:linear-gradient(rgba(255,253,248,.92),rgba(255,253,248,.92)),radial-gradient(circle at 90% 5%,rgba(234,215,165,.22),transparent 24%)!important}.bl-planner-paper-heading{display:grid;justify-items:center;gap:2px;padding-bottom:16px;border-bottom:1px solid rgba(199,154,53,.32)}.bl-planner-paper-heading span{font-size:.66rem;font-weight:850;letter-spacing:.18em;text-transform:uppercase;color:#8c6a20}.bl-planner-paper-heading strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2rem,5vw,3.4rem);line-height:1;color:#054d5f}.bl-planner-paper-heading small{font-size:.8rem;color:#6e6e73}.bl-planner-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:18px;opacity:.76}.bl-planner-calendar-weekday{padding:4px;text-align:center;font-size:.65rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:#8c6a20}.bl-planner-calendar-day{min-height:54px;display:flex;align-items:flex-start;justify-content:flex-end;padding:7px;border:1px solid rgba(7,90,108,.12);border-radius:10px;background:rgba(255,255,255,.58);font-size:.77rem;font-weight:750;color:#054d5f}.bl-planner-calendar-day.is-empty{background:transparent;border-color:transparent}.bl-planner-calendar-day.is-today{border-color:#c79a35;box-shadow:inset 0 0 0 1px #c79a35}.bl-planner-calendar-day.is-event-day{color:#fff;background:linear-gradient(135deg,#054d5f,#0b7285);border-color:#054d5f;box-shadow:0 7px 18px rgba(5,77,95,.18)}.bl-planner-calendar-grid.is-journal{display:grid;grid-template-columns:1fr;gap:25px;margin-top:28px}.bl-planner-journal-line{height:1px;background:rgba(199,154,53,.24)}.bl-planner-v2-elements{z-index:3}.bl-planner-v2-canvas__paper{z-index:1}.bl-planner-calendar-grid,.bl-planner-paper-heading{pointer-events:none}
@media(max-width:900px){.bl-planner-intro{display:grid}.bl-planner-event-date{text-align:left;min-width:0}.bl-planner-pagebar{grid-template-columns:1fr 1fr}.bl-planner-pagebar__center{grid-column:1/-1;grid-row:1;flex-wrap:wrap}.bl-planner-page-turn{grid-row:2;width:100%}.bl-planner-v2-toolbar{grid-template-columns:1fr 1fr!important}.bl-planner-toolbar-section--main,.bl-planner-savebar{grid-column:1/-1}.bl-planner-savebar{justify-content:space-between}.bl-planner-toolbar-menu__body{position:fixed;left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom));top:auto;width:auto;max-height:65dvh;overflow:auto;z-index:100002}.bl-planner-toolbar-menu__body--buttons{grid-template-columns:1fr 1fr}.bl-planner-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.bl-planner-toolbar-actions .bl-planner-tool-btn{width:100%;min-height:48px}.bl-planner-v2-canvas__paper{padding:18px 14px!important}.bl-planner-calendar-grid{gap:4px}.bl-planner-calendar-day{min-height:42px;padding:4px;font-size:.7rem}.bl-planner-paper-heading strong{font-size:2.2rem}}
@media(max-width:420px){.bl-planner-pagebar{padding:10px;gap:8px}.bl-planner-pagebar__center{display:grid;grid-template-columns:1fr auto;width:100%}.bl-planner-pagebar__center label{grid-column:1/-1}.bl-planner-pagebar__center select{min-width:0;width:100%}.bl-planner-page-turn{padding:9px 8px;font-size:.78rem}.bl-planner-v2-toolbar{grid-template-columns:1fr!important}.bl-planner-toolbar-menu,.bl-planner-savebar{grid-column:1}.bl-planner-toolbar-menu>summary{width:100%;justify-content:center}.bl-planner-savebar{display:grid;grid-template-columns:1fr}.bl-planner-savebar .bl-planner-tool-btn{width:100%;min-height:52px}.bl-planner-toolbar-menu__body--buttons{grid-template-columns:1fr}.bl-planner-calendar-day{min-height:36px}.bl-planner-calendar-weekday{font-size:.57rem}.bl-planner-paper-heading small{font-size:.7rem}.bl-planner-v2-wrap{margin-inline:0!important}}
@media(prefers-reduced-motion:reduce){.bl-planner-book.is-turning-next .bl-planner-v2-canvas,.bl-planner-book.is-turning-prev .bl-planner-v2-canvas{animation:none}}

/* Planner v3.0.4 — compact editor controls and correctly sized journal elements */
.bl-planner-v2-el--text,
.bl-planner-v2-el--note,
.bl-planner-v2-el--checklist {
	max-width: calc(100% - 20px);
}
.bl-planner-v2-el--text {
	min-width: 160px;
	min-height: 44px;
	background: rgba(255,255,255,.78);
	border-radius: 10px;
}
.bl-planner-v2-el--note {
	min-width: 200px;
	min-height: 76px;
	border-radius: 12px;
}
.bl-planner-v2-el--checklist {
	min-width: 220px;
	min-height: 110px;
}
.bl-planner-v2-text {
	box-sizing: border-box;
	display: block;
	height: 100%;
	min-height: 0 !important;
	max-height: 100%;
	overflow-y: auto;
	padding: 9px 11px;
	font-size: 16px;
	line-height: 1.35;
}
.bl-planner-v2-el--note .bl-planner-v2-text {
	padding: 11px 13px;
}
.bl-planner-toolbar-actions {
	display: grid;
	grid-template-columns: repeat(4, minmax(92px, 1fr));
	gap: 8px;
}
.bl-planner-toolbar-actions .bl-planner-tool-btn {
	min-height: 44px;
	padding: 8px 10px;
	font-size: .76rem;
	white-space: nowrap;
}
.bl-planner-v2-toolbar {
	align-items: center !important;
	grid-template-columns: minmax(0,1fr) auto auto auto !important;
	padding: 12px !important;
}
.bl-planner-toolbar-heading {
	margin-bottom: 6px;
}
.bl-planner-pagebar {
	padding: 10px 12px;
}
.bl-planner-page-turn {
	min-height: 44px;
}
@media (max-width: 900px) {
	.bl-planner-v2-toolbar {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 9px !important;
	}
	.bl-planner-toolbar-section--main,
	.bl-planner-savebar { grid-column: 1 / -1; }
	.bl-planner-toolbar-actions {
		grid-template-columns: repeat(4, minmax(0,1fr));
	}
	.bl-planner-toolbar-actions .bl-planner-tool-btn {
		min-width: 0;
		width: auto;
		padding: 7px 5px;
		font-size: .7rem;
	}
}
@media (max-width: 520px) {
	.bl-planner-v3-shell { gap: 10px; }
	.bl-planner-pagebar {
		grid-template-columns: 44px minmax(0,1fr) 96px;
		gap: 7px;
		padding: 8px;
		border-radius: 16px;
	}
	.bl-planner-pagebar__center {
		grid-column: auto;
		grid-row: auto;
		display: grid;
		grid-template-columns: 1fr;
		gap: 3px;
	}
	.bl-planner-pagebar__center label { display: none; }
	.bl-planner-page-label { display: none; }
	.bl-planner-page-turn {
		grid-row: auto;
		width: 100%;
		min-height: 42px;
		padding: 6px;
		font-size: 0;
	}
	.bl-planner-page-turn span[aria-hidden="true"] { font-size: 1.05rem; }
	.bl-planner-page-turn--next span:first-child { font-size: .68rem; }
	.bl-planner-v2-toolbar {
		grid-template-columns: 1fr 1fr !important;
		padding: 9px !important;
		border-radius: 16px !important;
	}
	.bl-planner-toolbar-section--main,
	.bl-planner-savebar { grid-column: 1 / -1; }
	.bl-planner-toolbar-actions {
		grid-template-columns: repeat(4, minmax(0,1fr));
		gap: 5px;
	}
	.bl-planner-toolbar-actions .bl-planner-tool-btn {
		min-height: 42px;
		padding: 5px 2px;
		font-size: .64rem;
		letter-spacing: 0;
	}
	.bl-planner-toolbar-menu > summary {
		min-height: 42px;
		padding: 7px 8px;
		justify-content: center;
		font-size: .7rem;
		text-align: center;
	}
	.bl-planner-savebar {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
	}
	.bl-planner-savebar .bl-planner-tool-btn {
		width: auto;
		min-height: 44px;
		padding-inline: 14px;
	}
	.bl-planner-v2-canvas__paper { padding: 14px 10px !important; }
	.bl-planner-calendar-grid { margin-top: 12px; }
	.bl-planner-calendar-day { min-height: 34px; border-radius: 7px; }
	.bl-planner-v2-el--text { min-width: 145px; }
	.bl-planner-v2-el--note { min-width: 180px; }
	.bl-planner-v2-el--checklist { min-width: 200px; }
}
