/**
 * Phase 17 — Booking engine styles.
 * Shared by wp-admin, the partner extranet and public stay pages.
 * Colours resolve from the theme tokens with safe fallbacks for wp-admin.
 */

.seraj-cal,
.seraj-book,
.seraj-book-page {
	--sb-line: var(--seraj-border, #e3e6ea);
	--sb-ink: var(--seraj-text, #1d2327);
	--sb-muted: var(--seraj-muted, #6b7280);
	--sb-brand: var(--seraj-primary, #0f766e);
	--sb-surface: var(--seraj-surface, #fff);
	--sb-soft: var(--seraj-surface-alt, #f6f7f9);
	--sb-radius: 12px;
}

/* ------------------------------------------------------------------ */
/* Calendar                                                            */
/* ------------------------------------------------------------------ */

.seraj-cal {
	background: var(--sb-surface);
	border: 1px solid var(--sb-line);
	border-radius: var(--sb-radius);
	padding: 16px;
	color: var(--sb-ink);
}

.seraj-cal--empty {
	color: var(--sb-muted);
}

.seraj-cal__bar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 12px;
}

.seraj-cal__pick,
.seraj-cal__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.seraj-cal__field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 12px;
	color: var(--sb-muted);
}

.seraj-cal__field--wide {
	grid-column: 1 / -1;
}

.seraj-cal__field input,
.seraj-cal__field select {
	min-height: 36px;
	padding: 6px 10px;
	border: 1px solid var(--sb-line);
	border-radius: 8px;
	background: var(--sb-surface);
	color: var(--sb-ink);
	font-size: 14px;
	max-width: 100%;
}

.seraj-cal__field input:focus,
.seraj-cal__field select:focus {
	outline: 2px solid var(--sb-brand);
	outline-offset: 1px;
}

.seraj-cal__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 34px;
	padding: 6px 12px;
	border: 1px solid var(--sb-line);
	border-radius: 8px;
	background: var(--sb-soft);
	color: var(--sb-ink);
	font-size: 13px;
	text-decoration: none;
	cursor: pointer;
}

.seraj-cal__btn:hover {
	border-color: var(--sb-brand);
	color: var(--sb-brand);
}

.seraj-cal__hint {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--sb-muted);
}

.seraj-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}

.seraj-cal__dow {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--sb-muted);
	text-align: center;
	padding-bottom: 4px;
}

.seraj-cal__blank {
	min-height: 10px;
}

.seraj-cal__day {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-height: 78px;
	padding: 6px;
	border: 1px solid var(--sb-line);
	border-radius: 10px;
	background: var(--sb-surface);
	color: var(--sb-ink);
	text-align: left;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.seraj-cal__day:hover:not(:disabled) {
	border-color: var(--sb-brand);
}

.seraj-cal__day.is-selected {
	border-color: var(--sb-brand);
	box-shadow: inset 0 0 0 2px var(--sb-brand);
	background: color-mix(in srgb, var(--sb-brand) 8%, var(--sb-surface));
}

.seraj-cal__day.is-stopped {
	background: repeating-linear-gradient(135deg, var(--sb-soft), var(--sb-soft) 6px, transparent 6px, transparent 12px);
	color: var(--sb-muted);
}

.seraj-cal__day.is-full .seraj-cal__left {
	color: #b42318;
}

.seraj-cal__day:disabled,
.seraj-cal__day.is-past {
	opacity: .45;
	cursor: not-allowed;
}

.seraj-cal__num {
	font-weight: 700;
	font-size: 14px;
}

.seraj-cal__rate {
	font-size: 13px;
}

.seraj-cal__left,
.seraj-cal__flag {
	font-size: 11px;
	color: var(--sb-muted);
}

.seraj-cal__bulk {
	margin-top: 16px;
	border: 1px solid var(--sb-line);
	border-radius: var(--sb-radius);
	background: var(--sb-soft);
	padding: 12px;
}

.seraj-cal__bulkhead {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-bottom: 10px;
}

.seraj-cal__count {
	font-size: 13px;
	color: var(--sb-muted);
	margin-right: auto;
}

.seraj-cal__fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 10px;
}

.seraj-cal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 12px;
}

.seraj-cal__save {
	min-height: 38px;
	padding: 8px 18px;
	border: 0;
	border-radius: 8px;
	background: var(--sb-brand);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

.seraj-cal__save:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.seraj-cal__note {
	font-size: 12px;
	color: var(--sb-muted);
}

/* ------------------------------------------------------------------ */
/* Public booking widget                                               */
/* ------------------------------------------------------------------ */

.seraj-book__lead {
	color: var(--sb-muted);
	margin: 4px 0 0;
}

.seraj-book__form {
	background: var(--sb-soft);
	border: 1px solid var(--sb-line);
	border-radius: var(--sb-radius);
	padding: 16px;
}

.seraj-book__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px;
	align-items: end;
}

.seraj-book .seraj-field,
.seraj-book-page .seraj-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	color: var(--sb-muted);
}

.seraj-book .seraj-field input,
.seraj-book .seraj-field select,
.seraj-book .seraj-field textarea,
.seraj-book-page .seraj-field input,
.seraj-book-page .seraj-field select,
.seraj-book-page .seraj-field textarea {
	min-height: 42px;
	padding: 10px 12px;
	border: 1px solid var(--sb-line);
	border-radius: 10px;
	background: var(--sb-surface);
	color: var(--sb-ink);
	font-size: 15px;
	width: 100%;
}

.seraj-book .seraj-field textarea,
.seraj-book-page .seraj-field textarea {
	min-height: 84px;
	resize: vertical;
}

.seraj-book .seraj-field input:focus,
.seraj-book .seraj-field select:focus,
.seraj-book .seraj-field textarea:focus,
.seraj-book-page .seraj-field input:focus,
.seraj-book-page .seraj-field select:focus,
.seraj-book-page .seraj-field textarea:focus {
	outline: 2px solid var(--sb-brand);
	outline-offset: 1px;
}

/* Manage-booking lookup form */
.seraj-book-lookup__form {
	display: grid;
	gap: 14px;
	margin-top: 18px;
}
.seraj-book-lookup__form .seraj-field span { font-weight: 600; color: var(--sb-ink); }
.seraj-book-lookup__form .seraj-btn { min-height: 46px; justify-self: start; }
.seraj-book-lookup .seraj-book__hint {
	margin: 18px 0 0;
	font-size: 13px;
	color: var(--sb-muted);
}
@media (max-width: 640px) {
	.seraj-book-lookup__form .seraj-btn { justify-self: stretch; width: 100%; }
}

.seraj-book__grid .seraj-btn {
	min-height: 44px;
}

.seraj-book__error,
.seraj-book__ok {
	border-radius: 10px;
	padding: 12px 14px;
	margin: 12px 0;
	font-size: 14px;
}

.seraj-book__error {
	background: #fdecea;
	color: #8a1c13;
}

.seraj-book__ok {
	background: #e8f6ef;
	color: #10603f;
}

.seraj-book__quote {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 20px;
	margin-top: 20px;
}

@media (max-width: 782px) {
	.seraj-book__quote {
		grid-template-columns: 1fr;
	}
}

.seraj-book__summary,
.seraj-book__guest {
	border: 1px solid var(--sb-line);
	border-radius: var(--sb-radius);
	background: var(--sb-surface);
	padding: 16px;
}

.seraj-book__summary h3,
.seraj-book__guest h3 {
	margin: 0 0 6px;
}

.seraj-book__dates {
	color: var(--sb-muted);
	margin: 0 0 12px;
}

.seraj-book__lines {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.seraj-book__lines li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
}

.seraj-book__lines .is-total {
	border-top: 1px solid var(--sb-line);
	padding-top: 8px;
	font-size: 16px;
}

.seraj-book__lines .is-due strong {
	color: var(--sb-brand);
}

.seraj-book__policy,
.seraj-book__fineprint {
	font-size: 12px;
	color: var(--sb-muted);
	margin: 12px 0 0;
}

.seraj-book__guest .seraj-field {
	margin-bottom: 12px;
}

/* ------------------------------------------------------------------ */
/* Guest booking page                                                  */
/* ------------------------------------------------------------------ */

.seraj-book-page {
	padding: 48px 0;
}

.seraj-book-page__card {
	max-width: 640px;
	margin: 0 auto;
	border: 1px solid var(--sb-line);
	border-radius: 16px;
	background: var(--sb-surface);
	padding: 28px;
}

.seraj-book-page__eyebrow {
	margin: 0;
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--sb-muted);
}

.seraj-book-page__card h1 {
	margin: 4px 0 8px;
	font-size: 28px;
	letter-spacing: .04em;
}

.seraj-book-page__status {
	display: inline-block;
	margin: 0 0 16px;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--sb-soft);
	font-size: 13px;
	color: var(--sb-muted);
}

.seraj-book-page__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
	margin: 0 0 20px;
}

.seraj-book-page__facts dt {
	font-size: 12px;
	color: var(--sb-muted);
	margin-bottom: 2px;
}

.seraj-book-page__facts dd {
	margin: 0;
	font-weight: 600;
}

.seraj-book-page__pay,
.seraj-book-page__cancel {
	margin-top: 16px;
}

/* ------------------------------------------------------------------ */
/* Partner reservations list                                           */
/* (.sb-cards / .sb-card / .sb-detail / .sb-grid / .sb-actions now      */
/*  live in partner-app.css — the partner shell's canonical stylesheet) */
/* ------------------------------------------------------------------ */


.sb-timeline {
	margin-top: 12px;
	font-size: 13px;
}

.sb-timeline ul {
	margin: 8px 0 0;
	padding-left: 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.sb-timeline time {
	color: var(--seraj-muted, #6b7280);
}

@media (prefers-reduced-motion: reduce) {
	.seraj-cal__day {
		transition: none;
	}
}

/* ------------------------------------------------------------------ */
/* Transparent price breakdown                                         */
/* ------------------------------------------------------------------ */

.seraj-book__nights {
	margin-top: 12px;
	border-top: 1px dashed var(--sb-line);
	padding-top: 10px;
}

.seraj-book__nights > summary {
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	color: var(--sb-brand);
	list-style: none;
}

.seraj-book__nights > summary::-webkit-details-marker {
	display: none;
}

.seraj-book__nights > summary::after {
	content: " ▾";
}

.seraj-book__nights[open] > summary::after {
	content: " ▴";
}

.seraj-book__nights ul {
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.seraj-book__nights li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 10px;
	align-items: baseline;
	font-size: 13px;
	color: var(--sb-ink);
}

.seraj-book__nightcalc {
	color: var(--sb-muted);
	font-size: 12px;
	white-space: nowrap;
}

.seraj-roomoffer__note--tax {
	color: var(--sb-muted, #6b7280);
	font-size: 12px;
}

/* ------------------------------------------------------------------ */
/* Inline availability refresh                                         */
/* ------------------------------------------------------------------ */

.seraj-book__body {
	transition: opacity .15s ease;
}

.seraj-book.is-loading .seraj-book__body {
	opacity: .45;
	pointer-events: none;
}

.seraj-book__loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 14px;
	font-size: 14px;
	color: var(--sb-muted);
}

.seraj-book__loading[hidden] {
	display: none;
}

.seraj-book__spinner {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid color-mix(in srgb, var(--sb-brand) 30%, transparent);
	border-top-color: var(--sb-brand);
	animation: seraj-book-spin .7s linear infinite;
}

@keyframes seraj-book-spin {
	to { transform: rotate(360deg); }
}

.seraj-roomoffer__units {
	margin: 8px 0;
	align-items: flex-end;
}

.seraj-roomoffer__units select {
	min-height: 38px;
	padding: 6px 10px;
	border: 1px solid var(--sb-line);
	border-radius: 8px;
	background: var(--sb-surface);
	color: var(--sb-ink);
	font-size: 14px;
}

.seraj-btn.is-busy {
	opacity: .6;
	cursor: progress;
}

@media (prefers-reduced-motion: reduce) {
	.seraj-book__spinner { animation-duration: 2s; }
	.seraj-book__body { transition: none; }
}

/* ------------------------------------------------------------------ */
/* Multi-room basket                                                   */
/* ------------------------------------------------------------------ */

.seraj-book__cart {
	list-style: none;
	margin: 0 0 14px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--sb-line);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.seraj-book__cart li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 10px;
	align-items: center;
	font-size: 14px;
}

.seraj-book__cartmeta {
	display: block;
	font-size: 12px;
	color: var(--sb-muted);
}

.seraj-book__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1px solid var(--sb-line);
	color: var(--sb-muted);
	text-decoration: none;
	line-height: 1;
	font-size: 16px;
}

.seraj-book__remove:hover {
	border-color: #b42318;
	color: #b42318;
}

.seraj-roomoffer__add {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.seraj-roomoffer__incart {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--sb-brand);
}

/* Promo code (booking summary) ------------------------------------- */
.seraj-book__promo {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: .6rem;
	margin: 1rem 0;
	padding: .9rem 1rem;
	border: 1px dashed var(--seraj-border, rgba(0, 0, 0, .14));
	border-radius: var(--seraj-radius, 12px);
}
.seraj-book__promo .seraj-field { flex: 1 1 12rem; margin: 0; }
.seraj-book__promo input[type="text"] { text-transform: uppercase; letter-spacing: .04em; }
.seraj-book__promook,
.seraj-book__promoerr {
	flex: 1 1 100%;
	margin: 0;
	font-size: .86rem;
}
.seraj-book__promook { color: var(--seraj-success, #14804a); }
.seraj-book__promook a { margin-left: .4rem; text-decoration: underline; }
.seraj-book__promoerr { color: var(--seraj-danger, #b3261e); }

/* Promo console (partner + manager) -------------------------------- */
.sb-promos__actions { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.sb-promos__actions form { display: inline; margin: 0; }
.sb-promoform .sp-grid { margin-bottom: .9rem; }
.sb-promoform .sp-check { display: flex; align-items: center; gap: .5rem; }

/* ------------------------------------------------------------------ */
/* Discount breakdown, policies (Phase 17.2)                           */
/* ------------------------------------------------------------------ */

.seraj-book__cartsave {
	display: block;
	font-size: .78rem;
	font-weight: 600;
	color: #1f7a52;
}

.seraj-book__was {
	display: block;
	font-size: .78rem;
	font-weight: 400;
	color: #5f7069;
	text-decoration: line-through;
}

.seraj-book__policy {
	margin: 12px 0 0;
	padding: 12px 14px;
	border-radius: 10px;
	background: rgba(31, 122, 82, .07);
	font-size: .86rem;
	line-height: 1.5;
}

.seraj-book__policy ul {
	margin: 6px 0 0;
	padding-left: 18px;
}

.seraj-book__policy li { margin: 2px 0; }

.seraj-book__refund {
	margin: 0 0 10px;
	font-size: .86rem;
	color: #5f7069;
}

/* Policy console (partner + manager) */
.seraj-policy__picker { margin: 0; }

.seraj-policy__grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.seraj-policy__presets {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 14px;
}

.seraj-policy__preset {
	flex: 1 1 180px;
	padding: 12px 14px;
	border: 1px solid #dbe6e1;
	border-radius: 12px;
	cursor: pointer;
	background: #fff;
}

.seraj-policy__preset.is-active {
	border-color: #1f7a52;
	box-shadow: 0 0 0 2px rgba(31, 122, 82, .15);
}

.seraj-policy__preview {
	margin-top: 16px;
	padding: 14px 16px;
	border-radius: 12px;
	background: #f5f9f7;
	font-size: .88rem;
}

.seraj-policy__preview ul { margin: 8px 0 6px; padding-left: 18px; }

/* Child ages, occupancy guidance and party summary (17.3) */
.seraj-book__ages { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.seraj-book__ages[hidden] { display: none; }
.seraj-book__ages .seraj-field { min-width: 7.5rem; }
.seraj-book__policy-note { margin: .5rem 0 0; font-size: .85rem; color: var(--seraj-muted, #667085); }
.seraj-book__party { margin: .5rem 0 0; font-size: .875rem; color: var(--seraj-muted, #667085); }
.seraj-book__notice {
	margin: 1rem 0; padding: .75rem 1rem; border-radius: .6rem;
	background: rgba(234, 179, 8, .12); border: 1px solid rgba(234, 179, 8, .35);
	font-size: .9rem;
}
.seraj-roomoffer__occupancy { margin: .35rem 0; font-size: .82rem; color: var(--seraj-muted, #667085); }

/* Guest classification breakdown */
.seraj-book__guests { margin: .9rem 0 0; padding: .85rem .95rem; border: 1px solid var(--seraj-line, #e4ebe8); border-radius: 12px; background: #f7fbf9; }
.seraj-book__guests h4 { margin: 0 0 .55rem; font-size: .95rem; }
.seraj-book__guestroom + .seraj-book__guestroom { margin-top: .7rem; padding-top: .7rem; border-top: 1px dashed var(--seraj-line, #e4ebe8); }
.seraj-book__guestroomlabel { display: block; font-size: .85rem; color: var(--seraj-muted, #667085); }
.seraj-book__guestrows { list-style: none; margin: .35rem 0 0; padding: 0; display: grid; gap: .35rem; }
.seraj-book__guestrows li { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; font-size: .875rem; }
.seraj-book__guestrows li span { display: grid; gap: .1rem; }
.seraj-book__guestrows li em { font-style: normal; font-size: .78rem; color: var(--seraj-muted, #667085); }
.seraj-book__guestnote { margin: .6rem 0 0; font-size: .78rem; color: var(--seraj-muted, #667085); }

/* Hold window + reinstate (booking page) ---------------------------- */
.seraj-book-page__hold {
	margin: .75rem 0 0;
	padding: .7rem .9rem;
	border-radius: var(--seraj-radius, 12px);
	background: color-mix(in srgb, var(--seraj-accent, #c98a3a) 10%, transparent);
	color: var(--seraj-text, inherit);
	font-size: .92rem;
}
.seraj-book-page__status--expired { color: #b3261e; }
.seraj-book-page__status--confirmed { color: #1b7f4d; }
.seraj-book-page__reinstate {
	margin: 1.25rem 0;
	padding: 1rem 1.1rem;
	border: 1px solid var(--seraj-border, rgba(0,0,0,.12));
	border-radius: var(--seraj-radius, 12px);
	background: var(--seraj-surface, #fff);
}
.seraj-book-page__reinstate h2 { margin: 0 0 .4rem; font-size: 1.05rem; }
.seraj-book-page__reinstate p { margin: 0 0 .8rem; }

/* Amendments (booking page) ----------------------------------------- */
.seraj-book-page__amend {
	margin: 1.25rem 0;
	padding: .9rem 1.1rem;
	border: 1px solid var(--seraj-border, rgba(0,0,0,.12));
	border-radius: var(--seraj-radius, 12px);
	background: var(--seraj-surface, #fff);
}
.seraj-book-page__amend > summary {
	cursor: pointer;
	font-weight: 600;
	list-style: none;
}
.seraj-book-page__amend > summary::-webkit-details-marker { display: none; }
.seraj-book-page__amend > summary::after { content: " +"; color: var(--seraj-muted, #667085); }
.seraj-book-page__amend[open] > summary::after { content: " –"; }
.seraj-book-page__amend-form {
	margin-top: .9rem;
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.seraj-book-page__amend-form label { display: grid; gap: .25rem; font-size: .85rem; }
.seraj-book-page__amend-form label span { color: var(--seraj-muted, #667085); }
.seraj-book-page__amend-form input,
.seraj-book-page__amend-form select {
	padding: .55rem .65rem;
	border: 1px solid var(--seraj-border, rgba(0,0,0,.14));
	border-radius: 10px;
	font: inherit;
	background: #fff;
}
.seraj-book-page__amend-form .seraj-book__note,
.seraj-book-page__amend-form button { grid-column: 1 / -1; }
.seraj-book__note { margin: 0; font-size: .82rem; color: var(--seraj-muted, #667085); }

/* Report bars (console) --------------------------------------------- */
.seraj-report-bars { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .55rem; }
.seraj-report-bars li { display: grid; grid-template-columns: 5.5rem 1fr auto; align-items: center; gap: .75rem; font-size: .86rem; }
.seraj-report-bars__track { height: 10px; border-radius: 999px; background: rgba(0,0,0,.07); overflow: hidden; }
.seraj-report-bars__fill { display: block; height: 100%; border-radius: 999px; background: var(--seraj-accent, #0f766e); }
.seraj-report-bars__value { font-variant-numeric: tabular-nums; }

/* Refund panel + iCal channel sync (Phase 17.4 / 17.5) */
.sb-refund { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(0,0,0,.12); }
.sb-ical .sp-row { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.sb-ical .sp-row input[type="text"] { min-width: 260px; flex: 1 1 320px; font-size: 12px; }
.sb-ical__url { flex: 1 1 320px; }
.sb-ical code { word-break: break-all; }


/* Booking detail — split payment status ------------------------------- */
.seraj-book-split {
	margin: 1.5rem 0;
	padding: 1.15rem 1.25rem 1.35rem;
	border: 1px solid var(--seraj-border, rgba(0, 0, 0, .1));
	border-radius: 14px;
	background: var(--seraj-surface, #fff);
}
.seraj-book-split h2 {
	margin: 0 0 .85rem;
	font-size: 1rem;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.seraj-book-split__bar {
	display: flex;
	height: 10px;
	border-radius: 999px;
	overflow: hidden;
	background: rgba(0, 0, 0, .08);
}
.seraj-book-split__seg { display: block; height: 100%; }
.seraj-book-split__seg.is-paid { background: #1c8a5b; }
.seraj-book-split__seg.is-duenow { background: #d4922a; }
.seraj-book-split__seg.is-property { background: rgba(0, 0, 0, .28); }
.seraj-book-split__rows {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: grid;
	gap: .5rem;
}
.seraj-book-split__rows li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	font-size: .95rem;
}
.seraj-book-split__rows li.is-total {
	margin-top: .35rem;
	padding-top: .6rem;
	border-top: 1px solid var(--seraj-border, rgba(0, 0, 0, .1));
	font-weight: 700;
}
.seraj-book-split__label { display: flex; align-items: center; gap: .5rem; }
.seraj-book-split__label::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: rgba(0, 0, 0, .28);
}
.is-paid .seraj-book-split__label::before { background: #1c8a5b; }
.is-duenow .seraj-book-split__label::before { background: #d4922a; }
.is-total .seraj-book-split__label::before { display: none; }
.seraj-book-split__value { text-align: right; font-variant-numeric: tabular-nums; }
.seraj-book-split__value em {
	display: block;
	font-style: normal;
	font-size: .78rem;
	opacity: .65;
}
.seraj-book-split__note {
	margin: .9rem 0 0;
	font-size: .85rem;
	opacity: .75;
}

/* ---------------------------------------------------------------- */
/* Online payment receipt (guest booking page)                       */
/* ---------------------------------------------------------------- */

.seraj-book-receipt { margin: 22px 0; padding: 18px; border: 1px solid var(--seraj-line, #e4ebe8); border-radius: 14px; background: #fff; }
.seraj-book-receipt h2 { margin: 0 0 4px; font-size: 1.05rem; }
.seraj-book-receipt__intro { margin: 0 0 14px; font-size: .85rem; color: #5f7069; }
.seraj-book-receipt__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.seraj-book-receipt__item { padding: 14px; border: 1px solid #eef3f1; border-left: 3px solid #1f6f5c; border-radius: 10px; background: #fbfdfc; }
.seraj-book-receipt__item.is-refund { border-left-color: #c1793a; }
.seraj-book-receipt__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.seraj-book-receipt__kind { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: #5f7069; }
.seraj-book-receipt__amount { font-weight: 700; font-size: 1.05rem; }
.seraj-book-receipt__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px 16px; margin: 0; }
.seraj-book-receipt__meta dt { font-size: .74rem; color: #7b8b85; margin: 0 0 2px; }
.seraj-book-receipt__meta dd { margin: 0; font-size: .88rem; word-break: break-all; }
.seraj-book-receipt__meta code { font-size: .82rem; background: #eef3f1; padding: 1px 6px; border-radius: 5px; }
.seraj-book-receipt__foot { margin: 14px 0 0; font-size: .82rem; color: #5f7069; }

/* Email the guest (partner / manager consoles) */
.sb-guestmail { margin-top: 14px; border: 1px solid #e4ebe8; border-radius: 12px; padding: 10px 14px; background: #fbfdfc; }
.sb-guestmail > summary { cursor: pointer; font-weight: 600; font-size: .9rem; }
.sb-guestmail__form { margin-top: 12px; display: grid; gap: 10px; }
.sb-guestmail__form textarea { width: 100%; resize: vertical; }
.sb-guestmail__form .sp-btn { justify-self: start; }
.seraj-book-receipt__actions { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.seraj-book-receipt__actions form { margin: 0; }
.seraj-book-receipt__actions .seraj-btn { font-size: .82rem; padding: 7px 14px; }

/* Meal plan selector (public booking widget) ------------------------------ */
.seraj-book__mealopts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}
.seraj-book__mealopt{display:flex;align-items:center;gap:8px;border:1px solid var(--seraj-line,#e3e8e5);
  border-radius:10px;padding:8px 12px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s}
.seraj-book__mealopt:hover{border-color:var(--seraj-brand,#1f6f52)}
.seraj-book__mealopt input{margin:0}
.seraj-book__mealopt--on{border-color:var(--seraj-brand,#1f6f52);box-shadow:0 0 0 2px rgba(31,111,82,.12)}
.seraj-book__mealopt b{font-size:14px;display:block;line-height:1.2}
.seraj-book__mealopt small{color:#5f7069;font-size:12px}
.seraj-book__mealhints{margin:2px 0 10px;padding:0;list-style:none;color:#5f7069;font-size:12.5px}
.seraj-book__mealhints li{margin:2px 0}

/* Support desk panels ------------------------------------------------------ */
.sb-guestmail{margin-top:12px;border-top:1px solid var(--seraj-line,#e3e8e5);padding-top:10px}
.sb-guestmail>summary{cursor:pointer;font-weight:600;font-size:14px}
.sb-guestmail .sp-form{margin-top:10px}

/* Hold → payment jump link, cancel OTP, booking lookup ---------------- */
html { scroll-behavior: smooth; }
.seraj-book-page__hold-jump {
	display: inline-block;
	margin-left: .35rem;
	font-weight: 650;
	color: var(--seraj-primary, #2f5d3a);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.seraj-book-page__hold-jump:hover { text-decoration-thickness: 2px; }
#seraj-book-pay:target,
#seraj-book-cancel:target { scroll-margin-top: 90px; }
.seraj-book-cancel-otp {
	margin: .9rem 0;
	padding: .9rem 1rem;
	border: 1px solid var(--seraj-line, #e4ebe8);
	border-radius: var(--seraj-radius, 12px);
	display: grid;
	gap: .6rem;
	max-width: 320px;
}
.seraj-book__hint { margin: .5rem 0 0; font-size: .82rem; color: var(--seraj-muted, #667085); }
.seraj-book-lookup__form { display: grid; gap: .9rem; max-width: 420px; margin: 1.1rem 0; }

/* Wave C — front desk, maintenance blocks */
.seraj-cal__day.is-blocked {
	background: repeating-linear-gradient(135deg, #fdf1e3, #fdf1e3 6px, #f7e3cd 6px, #f7e3cd 12px);
	border-color: #e6c9a4;
}
.sb-desk__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.sb-desk__row {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	align-items: center;
	justify-content: space-between;
	padding: .75rem .9rem;
	border: 1px solid var(--seraj-line, #e4ebe8);
	border-radius: var(--seraj-radius, 12px);
}
.sb-desk__who { display: grid; gap: .15rem; min-width: 240px; flex: 1 1 auto; }
.sb-desk__money { display: grid; text-align: right; }
.sb-desk__act { display: flex; gap: .4rem; flex-wrap: wrap; }
.sb-blocks__list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.sb-blocks__item {
	display: flex;
	gap: .8rem;
	align-items: center;
	justify-content: space-between;
	padding: .6rem .8rem;
	border: 1px solid var(--seraj-line, #e4ebe8);
	border-radius: var(--seraj-radius, 12px);
}
.sb-blocks__item > div { display: grid; gap: .1rem; }
.sb-blocks__form,
.sb-manual__form { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: end; }
.sb-manual__form .sp-field--wide { grid-column: 1 / -1; }
.sb-manual__toggles { display: grid; gap: .45rem; }
.sb-manual__toggles .sp-small { margin: .2rem 0 0; }
.sb-offline { margin-top: .9rem; padding: .9rem 1rem; border: 1px solid var(--sp-line, rgba(16,35,28,.12)); border-radius: 12px; background: var(--sp-soft, rgba(16,35,28,.03)); }
.sb-offline > p { margin: 0 0 .6rem; }
.sb-offline .sb-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.sb-offline .sp-check { display: inline-flex; gap: .4rem; align-items: center; font-size: .9rem; }

@media print {
	.sb-noprint, .sp-nav, .sp-shell__nav, .sp-filters, .sp-topbar { display: none !important; }
	.sb-desk__row { break-inside: avoid; }
}

/* Guest pricing breakdown: per-room subtotal + right-aligned amounts. */
.seraj-book__guestroomlabel span { color: var(--seraj-muted, #667085); font-weight: 500; }
.seraj-book__guestrows li > strong:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.seraj-book__guestsub { margin: .45rem 0 0; font-size: .78rem; color: var(--seraj-muted, #667085); }

/* Room photo picker (partner extranet + wp-admin). */
.seraj-roomphotos__room {
	border: 1px solid var(--seraj-border, #e5e7eb);
	border-radius: var(--seraj-radius, 10px);
	padding: 1rem;
	margin: 0 0 1rem;
}
.seraj-roomphotos__room legend { font-weight: 600; padding: 0 .4rem; }
.seraj-roomphotos__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
	gap: .5rem;
	margin-top: .6rem;
}
.seraj-roomphotos__item { position: relative; cursor: pointer; display: block; }
.seraj-roomphotos__item img {
	width: 100%;
	height: 78px;
	object-fit: cover;
	border-radius: var(--seraj-radius-sm, 6px);
	display: block;
	opacity: .55;
	transition: opacity .15s ease, box-shadow .15s ease;
}
.seraj-roomphotos__item input { position: absolute; top: .3rem; left: .3rem; z-index: 2; }
.seraj-roomphotos__item input:checked + img,
.seraj-roomphotos__item.is-on img {
	opacity: 1;
	box-shadow: 0 0 0 2px var(--seraj-primary, #0f766e);
}

/* ---------------------------------------------------------------- */
/* Reservation intent screen (/reservation/{token}/)                 */
/* ---------------------------------------------------------------- */

.seraj-intent { padding: 32px 0 64px; max-width: 780px; }
.seraj-intent__eyebrow {
	text-transform: uppercase; letter-spacing: .08em; font-size: 12px;
	color: var(--seraj-muted, #5d6b65); margin: 0 0 4px;
}
.seraj-intent__head h1 { margin: 0 0 6px; }
.seraj-intent__dates { margin: 0 0 10px; font-weight: 600; }
.seraj-intent__note,
.seraj-intent__hold {
	background: var(--seraj-surface, #f4f8f6);
	border: 1px solid var(--seraj-border, #e4ebe8);
	border-radius: 10px; padding: 12px 14px; font-size: 14px; margin: 0 0 16px;
}
.seraj-intent section { margin: 28px 0; }
.seraj-intent h2 { font-size: 18px; margin: 0 0 10px; }
.seraj-intent__rooms ul { list-style: none; margin: 0; padding: 0; }
.seraj-intent__rooms li {
	display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline;
	padding: 10px 0; border-bottom: 1px solid var(--seraj-border, #e4ebe8);
}
.seraj-intent__rooms li span { font-size: 14px; color: var(--seraj-muted, #5d6b65); }
.seraj-intent__amount { margin-left: auto; font-weight: 600; color: inherit !important; }
.seraj-intent dl { margin: 0; }
.seraj-intent dl > div {
	display: flex; justify-content: space-between; gap: 16px;
	padding: 8px 0; border-bottom: 1px solid var(--seraj-border, #e4ebe8);
}
.seraj-intent dl dt, .seraj-intent dl dd { margin: 0; font-size: 14px; }
.seraj-intent dl dd { text-align: right; }
.seraj-intent dl > div.is-muted { opacity: .7; font-size: 13px; }
.seraj-intent dl > div.is-total,
.seraj-intent dl > div.is-due { font-weight: 700; }
.seraj-intent dl > div.is-due dd { color: var(--seraj-primary, #0f7a5a); }
.seraj-intent .seraj-book-page__pay { margin-top: 24px; }

@media (max-width: 640px) {
	.seraj-intent__amount { margin-left: 0; width: 100%; }
}

/* Reservation screen: stay line, choices, terms gate */
.seraj-intent__stayline {
	display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 0 0 14px;
	padding: 12px 14px; border: 1px solid var(--seraj-border, #e4ebe8);
	border-radius: 10px; background: #fff;
}
.seraj-intent__stayline > div { display: flex; flex-direction: column; gap: 2px; }
.seraj-intent__stayline span {
	font-size: 11px; text-transform: uppercase; letter-spacing: .07em;
	color: var(--seraj-muted, #5d6b65);
}
.seraj-intent__stayline strong { font-size: 15px; }
.seraj-intent__stayline em { font-style: normal; font-size: 12px; color: var(--seraj-muted, #5d6b65); }

.seraj-intent__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.seraj-intent__chips li {
	display: flex; flex-direction: column; gap: 2px;
	border: 1px solid var(--seraj-border, #e4ebe8); border-radius: 10px;
	padding: 8px 12px; background: var(--seraj-surface, #f4f8f6);
}
.seraj-intent__chips span {
	font-size: 11px; text-transform: uppercase; letter-spacing: .07em;
	color: var(--seraj-muted, #5d6b65);
}
.seraj-intent__chips strong { font-size: 14px; }

.seraj-intent__room { display: flex; flex-direction: column; gap: 2px; }
.seraj-intent__terms {
	margin: 24px 0 16px; padding: 14px 16px;
	border: 1px solid var(--seraj-border, #e4ebe8); border-radius: 12px;
	background: var(--seraj-surface, #f4f8f6);
}
.seraj-intent__terms h2 { font-size: 16px; margin: 0 0 8px; }
.seraj-intent__terms ul { margin: 0 0 10px; padding-left: 18px; font-size: 14px; }
.seraj-intent__termstext { font-size: 13px; color: var(--seraj-muted, #5d6b65); margin: 0 0 10px; }
.seraj-intent__ack { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.seraj-intent__ack input { margin-top: 3px; }
.seraj-book-page__pay button[disabled] { opacity: .55; cursor: not-allowed; }

/* Terms gate feedback */
.seraj-intent__error {
	margin: 8px 0 0; font-size: 13px; font-weight: 600;
	color: var(--seraj-danger, #b3261e);
}
.seraj-intent__ack.is-invalid input { outline: 2px solid var(--seraj-danger, #b3261e); outline-offset: 2px; }
.seraj-intent__hint { margin: 8px 0 0; font-size: 13px; color: var(--seraj-muted, #5d6b65); }
.seraj-book-page__pay .seraj-btn.is-locked { opacity: .55; cursor: not-allowed; }


