/* School Tour Booking – public form */
.stb-booking {
	--stb-accent: #1f3a68;
	--stb-accent-contrast: #ffffff;
	--stb-accent-soft: rgba(31, 58, 104, .08);
	--stb-text: #1d2327;
	--stb-muted: #646970;
	--stb-border: #dcdfe4;
	--stb-bg: #ffffff;
	--stb-surface: #f6f7f9;
	--stb-ok: #1a7f37;
	--stb-ok-soft: #e7f5ec;
	--stb-full: #b42318;
	--stb-full-soft: #fdecea;
	--stb-radius: 10px;
	color: var(--stb-text);
	font-size: 16px;
	line-height: 1.5;
	max-width: 960px;
	margin: 0 auto;
	box-sizing: border-box;
}
.stb-booking *, .stb-booking *::before, .stb-booking *::after { box-sizing: border-box; }
.stb-booking button { font: inherit; cursor: pointer; }
.stb-booking button:disabled { cursor: not-allowed; }
.stb-booking :focus-visible { outline: 2px solid var(--stb-accent); outline-offset: 2px; }

.stb-step { background: var(--stb-bg); border: 1px solid var(--stb-border); border-radius: var(--stb-radius); padding: 20px; margin: 0 0 16px; }
.stb-step-title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 1.1em; font-weight: 600; }
.stb-num { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--stb-accent); color: var(--stb-accent-contrast); font-size: .85em; flex: none; }
.stb-hint { color: var(--stb-muted); margin: 0; }

/* Services */
.stb-services { display: block; }
.stb-services > .stb-service + .stb-service { margin-top: 10px; }
.stb-service { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--stb-border); border-radius: var(--stb-radius); padding: 12px 14px; cursor: pointer; transition: border-color .15s, background .15s; }
.stb-service:hover { border-color: var(--stb-accent); }
.stb-service.is-selected { border-color: var(--stb-accent); background: var(--stb-accent-soft); box-shadow: inset 0 0 0 1px var(--stb-accent); }
.stb-service input { margin-top: 4px; accent-color: var(--stb-accent); }
.stb-service-main { display: flex; flex-direction: column; gap: 2px; }
.stb-service-meta { color: var(--stb-muted); font-size: .9em; }
.stb-service-desc { font-size: .9em; }
.stb-qty { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.stb-qty label { font-weight: 600; }
.stb-qty input { width: 90px; }

/* Calendar */
.stb-step-date .stb-step-body { position: relative; }
.stb-cal-nav { position: absolute; inset-inline-end: 0; top: -46px; display: flex; gap: 6px; }
.stb-nav-btn { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--stb-border); background: var(--stb-bg); color: var(--stb-text); font-size: 20px; line-height: 1; }
.stb-nav-btn:disabled { opacity: .35; }
[dir="rtl"] .stb-nav-btn { transform: scaleX(-1); }
.stb-months { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.stb-month-title { text-align: center; font-weight: 600; margin-bottom: 8px; text-transform: capitalize; }
.stb-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.stb-dow { text-align: center; font-size: .75em; color: var(--stb-muted); text-transform: uppercase; padding: 4px 0; }
.stb-day { aspect-ratio: 1 / 1; min-height: 34px; border: 0; border-radius: 8px; background: transparent; color: var(--stb-muted); font-size: .9em; padding: 0; }
.stb-day.stb-available { background: var(--stb-ok-soft); color: var(--stb-ok); font-weight: 600; }
.stb-day.stb-available:hover { background: var(--stb-ok); color: #fff; }
.stb-day.stb-full { background: var(--stb-full-soft); color: var(--stb-full); text-decoration: line-through; }
.stb-day.stb-closed { opacity: .45; }
.stb-day.stb-loading { background: var(--stb-surface); animation: stb-pulse 1.2s ease-in-out infinite; }
.stb-day.is-today { box-shadow: inset 0 0 0 1px var(--stb-muted); }
.stb-day.is-selected, .stb-day.is-selected:hover { background: var(--stb-accent); color: var(--stb-accent-contrast); text-decoration: none; opacity: 1; }
.stb-empty { visibility: hidden; }
@keyframes stb-pulse { 50% { opacity: .5; } }
.stb-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; font-size: .8em; color: var(--stb-muted); }
.stb-lg::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-inline-end: 6px; vertical-align: -1px; }
.stb-lg-available::before { background: var(--stb-ok-soft); box-shadow: inset 0 0 0 1px var(--stb-ok); }
.stb-lg-full::before { background: var(--stb-full-soft); box-shadow: inset 0 0 0 1px var(--stb-full); }
.stb-lg-closed::before { background: var(--stb-surface); box-shadow: inset 0 0 0 1px var(--stb-border); }

/* Slots */
.stb-slots-date { font-weight: 600; margin: 0 0 10px; }
.stb-slot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.stb-slot { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px; border: 1px solid var(--stb-border); border-radius: 8px; background: var(--stb-bg); color: var(--stb-text); }
.stb-slot:hover:not(:disabled) { border-color: var(--stb-accent); }
.stb-slot.is-selected { background: var(--stb-accent); border-color: var(--stb-accent); color: var(--stb-accent-contrast); }
.stb-slot.is-full { background: var(--stb-surface); color: var(--stb-muted); text-decoration: line-through; }
.stb-slot-time { font-weight: 600; }
.stb-slot-left { font-size: .75em; opacity: .85; text-decoration: none; }

/* Summary */
.stb-summary:not(:empty) { background: var(--stb-surface); border-radius: var(--stb-radius); padding: 14px 16px; margin-bottom: 18px; }
.stb-summary-title { font-weight: 600; margin-bottom: 6px; }
.stb-summary-list { display: grid; grid-template-columns: max-content 1fr; gap: 4px 16px; margin: 0; }
.stb-summary-list dt { color: var(--stb-muted); }
.stb-summary-list dd { margin: 0; font-weight: 500; }
.stb-total { display: flex; justify-content: space-between; border-top: 1px solid var(--stb-border); margin-top: 10px; padding-top: 10px; font-size: 1.05em; }

/* Form */
.stb-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.stb-field { display: flex; flex-direction: column; gap: 4px; grid-column: 1 / -1; }
.stb-field.stb-w-half { grid-column: auto; }
@media (max-width: 600px) { .stb-field.stb-w-half { grid-column: 1 / -1; } .stb-step { padding: 16px; } }
.stb-field > label, .stb-label { font-weight: 600; font-size: .95em; }
.stb-req { color: var(--stb-full); }
.stb-booking input[type=text], .stb-booking input[type=email], .stb-booking input[type=tel], .stb-booking input[type=number], .stb-booking input[type=date], .stb-booking select, .stb-booking textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--stb-border); border-radius: 8px; background: var(--stb-bg); color: var(--stb-text); font: inherit; min-height: 44px;
}
.stb-booking .stb-qty input { width: 90px; }
.stb-choices { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.stb-choice { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
.stb-choice input { accent-color: var(--stb-accent); }
.stb-help { color: var(--stb-muted); font-size: .85em; }
.stb-field-error { color: var(--stb-full); font-size: .85em; }
.stb-field-error:empty { display: none; }
.has-error input, .has-error select, .has-error textarea { border-color: var(--stb-full) !important; }
.stb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.stb-captcha { margin-top: 16px; }
.stb-captcha-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.stb-captcha-box img { display: block; border-radius: 6px; border: 1px solid var(--stb-border); }
.stb-captcha-q { font-weight: 600; }
.stb-booking input.stb-captcha-input { width: 150px; text-transform: uppercase; letter-spacing: .15em; }
.stb-link { background: none; border: 0; color: var(--stb-accent); text-decoration: underline; padding: 0; }
.stb-message:empty { display: none; }
.stb-message { margin-top: 16px; padding: 10px 14px; border-radius: 8px; }
.stb-message.is-error { background: var(--stb-full-soft); color: var(--stb-full); }
.stb-submit { margin-top: 18px; width: 100%; padding: 14px 20px; border: 0; border-radius: 8px; background: var(--stb-accent); color: var(--stb-accent-contrast); font-weight: 600; font-size: 1.05em; }
.stb-submit:disabled { opacity: .6; }

/* Success */
.stb-success { text-align: center; border: 1px solid var(--stb-border); border-radius: var(--stb-radius); padding: 32px 20px; outline: none; }
.stb-success-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--stb-ok-soft); color: var(--stb-ok); display: grid; place-items: center; font-size: 28px; margin: 0 auto 12px; }
.stb-success .stb-summary-list { max-width: 420px; margin: 16px auto 0; text-align: start; }

/* Admissions Dashboard (front end, School Admission role) */
.stb-dash { --stb-accent: #1f3a68; --stb-border: #dcdfe4; --stb-muted: #646970; color: #1d2327; font-size: 15px; line-height: 1.5; max-width: 1200px; margin: 0 auto; }
.stb-dash *, .stb-dash *::before, .stb-dash *::after { box-sizing: border-box; }
.stb-dash-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--stb-border); margin-bottom: 18px; }
.stb-dash-title { margin: 0 0 2px; font-size: 1.5em; }
.stb-dash-user { margin: 0 0 12px; color: var(--stb-muted); font-size: .9em; }
.stb-dash-tabs { display: flex; gap: 4px; }
.stb-dash-tabs a { padding: 10px 16px; text-decoration: none; color: var(--stb-muted); border-bottom: 3px solid transparent; font-weight: 600; }
.stb-dash-tabs a.is-active { color: var(--stb-accent); border-bottom-color: var(--stb-accent); }
.stb-dash-notice { background: #e7f5ec; color: #1a7f37; border-radius: 8px; padding: 10px 14px; margin-bottom: 14px; }
.stb-dash-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; background: #fff; border: 1px solid var(--stb-border); border-radius: 10px; padding: 14px; margin-bottom: 14px; }
.stb-dash-filters label { display: flex; flex-direction: column; gap: 3px; font-size: .8em; font-weight: 600; }
.stb-dash-filters input, .stb-dash-filters select { padding: 7px 9px; border: 1px solid var(--stb-border); border-radius: 6px; font: inherit; font-size: .95rem; min-height: 38px; }
.stb-btn { display: inline-block; padding: 8px 14px; border: 1px solid var(--stb-accent); border-radius: 6px; background: #fff; color: var(--stb-accent); text-decoration: none; font-weight: 600; font-size: .9em; cursor: pointer; line-height: 1.3; }
.stb-btn:hover { background: rgba(31, 58, 104, .08); }
.stb-btn-primary { background: var(--stb-accent); color: #fff; min-height: 38px; }
.stb-btn-primary:hover { background: var(--stb-accent); opacity: .9; }
.stb-btn-sm { padding: 4px 9px; font-size: .8em; margin: 2px 0; }
.stb-btn-danger { border-color: #b42318; color: #b42318; }
.stb-btn-link { color: var(--stb-accent); align-self: center; }
.stb-dash-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.stb-dash-bar .stb-quick { display: flex; gap: 12px; margin-right: auto; }
.stb-dash-bar .stb-count { color: var(--stb-muted); }
.stb-dash-table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--stb-border); border-radius: 10px; }
.stb-dash-table { width: 100%; border-collapse: collapse; margin: 0; }
.stb-dash-table th, .stb-dash-table td { padding: 10px 12px; border-bottom: 1px solid #eef0f2; text-align: start; vertical-align: top; }
.stb-dash-table th { background: #f6f7f9; font-size: .85em; }
.stb-dash-table tr.stb-status-cancelled td { opacity: .6; }
.stb-dash-actions { white-space: nowrap; }
.stb-dash .stb-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: .8em; font-weight: 600; }
.stb-dash .stb-badge-confirmed { background: #e7f5ec; color: #1a7f37; }
.stb-dash .stb-badge-pending { background: #fcf3e0; color: #996800; }
.stb-dash .stb-badge-cancelled { background: #f0f0f1; color: #8c8f94; }
.stb-dash .stb-details summary { cursor: pointer; color: var(--stb-accent); font-size: .85em; margin-top: 4px; }
.stb-dash .stb-details dl { display: grid; grid-template-columns: max-content 1fr; gap: 2px 10px; margin: 6px 0 0; font-size: .85em; }
.stb-dash .stb-details dt { color: var(--stb-muted); }
.stb-dash .stb-details dd { margin: 0; }
.stb-dash-pages { display: flex; gap: 6px; margin-top: 14px; }
.stb-dash-pages a, .stb-dash-pages span { padding: 4px 10px; border: 1px solid var(--stb-border); border-radius: 6px; text-decoration: none; }
.stb-dash-pages .is-current { background: var(--stb-accent); color: #fff; border-color: var(--stb-accent); }
@media (max-width: 760px) {
	.stb-dash-table thead { display: none; }
	.stb-dash-table, .stb-dash-table tbody, .stb-dash-table tr, .stb-dash-table td { display: block; width: 100%; }
	.stb-dash-table tr { border-bottom: 1px solid var(--stb-border); padding: 8px 0; }
	.stb-dash-table td { border: 0; padding: 4px 12px; }
	.stb-dash-table td[data-label]::before { content: attr(data-label); display: block; font-size: .75em; color: var(--stb-muted); font-weight: 600; }
}

.stb-dash-notice-error { background: #fdecea; color: #b42318; }

/* Notification sound controls (Admissions Dashboard) */
.stb-sound-ctrls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.stb-sound-wrap { display: inline-flex; align-items: center; gap: 4px; }
.stb-sound-btn { min-height: 40px; padding: 6px 12px; border: 1px solid var(--stb-border, #dcdfe4); border-radius: 8px; background: #fff; color: #1d2327; cursor: pointer; font: inherit; font-size: 14px; }
.stb-sound-btn:hover { border-color: var(--stb-accent, #1f3a68); }
.stb-sound-pick { min-height: 40px; padding: 6px 8px; border: 1px solid var(--stb-border, #dcdfe4); border-radius: 8px; font: inherit; font-size: 14px; background: #fff; color: #1d2327; max-width: 220px; }
.stb-new-banner { background: #e7f5ec; color: #1a7f37; border-radius: 8px; padding: 10px 14px; margin-bottom: 14px; font-weight: 600; }
.stb-new-banner[hidden] { display: none; }
@media print { .stb-sound-ctrls, .stb-new-banner { display: none !important; } }

/* Feedback email bulk action (Admissions Dashboard) */
.stb-bulk-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.stb-bulk-help { color: var(--stb-muted); font-size: .9em; }
.stb-feedback-btn[disabled] { opacity: .5; cursor: not-allowed; }
.stb-dash-table .stb-check { width: 36px; text-align: center; }
.stb-dash-table .stb-check input { width: 18px; height: 18px; }
.stb-feedback-sent { color: #1a7f37; }
@media print { .stb-bulk-bar, .stb-check { display: none !important; } }

/* Calendar on phones: neutralise browser/theme button styling so every day is an even, tappable square. */
.stb-booking .stb-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.stb-booking .stb-months { grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); }
.stb-booking .stb-grid .stb-day {
	-webkit-appearance: none; appearance: none;
	display: flex; align-items: center; justify-content: center;
	width: 100%; min-width: 0; max-width: none; height: auto; margin: 0; padding: 0;
	line-height: 1; letter-spacing: 0; text-transform: none; text-shadow: none; box-shadow: none;
	border: 0; border-radius: 8px; font-size: .9em; font-weight: 400;
	background: transparent; color: var(--stb-muted); -webkit-text-fill-color: currentColor;
	touch-action: manipulation; -webkit-tap-highlight-color: transparent;
	transform: none; transition: background-color .15s, color .15s;
}
@supports not (aspect-ratio: 1 / 1) { .stb-booking .stb-grid .stb-day { height: 40px; } }
.stb-booking .stb-grid .stb-day.stb-available { background: var(--stb-ok-soft); color: var(--stb-ok); font-weight: 600; opacity: 1; cursor: pointer; }
.stb-booking .stb-grid .stb-day.stb-full { background: var(--stb-full-soft); color: var(--stb-full); text-decoration: line-through; }
.stb-booking .stb-grid .stb-day.stb-closed { opacity: .45; }
.stb-booking .stb-grid .stb-day.stb-loading { background: var(--stb-surface); }
.stb-booking .stb-grid .stb-day.is-today { box-shadow: inset 0 0 0 1px var(--stb-muted); }
.stb-booking .stb-grid .stb-day.is-selected { background: var(--stb-accent); color: var(--stb-accent-contrast); text-decoration: none; opacity: 1; }
.stb-booking .stb-grid .stb-day:disabled { cursor: default; }
/* Hover colours only on devices with a real mouse (prevents "stuck" hover on phones). */
.stb-booking .stb-grid .stb-day.stb-available:hover { background: var(--stb-ok-soft); color: var(--stb-ok); }
@media (hover: hover) and (pointer: fine) { .stb-booking .stb-grid .stb-day.stb-available:hover { background: var(--stb-ok); color: #fff; } }
.stb-booking .stb-grid .stb-day.is-selected:hover { background: var(--stb-accent); color: var(--stb-accent-contrast); }
@media (max-width: 420px) {
	.stb-booking .stb-step { padding: 14px 12px; }
	.stb-booking .stb-grid { gap: 3px; }
	.stb-booking .stb-dow { font-size: .68em; letter-spacing: 0; }
}

/* ---------- Phone view: list of bookable dates instead of the month grid ---------- */
.stb-booking .stb-date-list { display: none; }
@media (max-width: 600px) {
	.stb-booking .stb-months, .stb-booking .stb-legend { display: none; }
	.stb-booking .stb-date-list { display: block; padding-top: 6px; }
}
.stb-booking .stb-dl-month + .stb-dl-month { margin-top: 16px; }
.stb-booking .stb-dl-title { font-weight: 600; margin: 0 0 8px; text-transform: capitalize; }
.stb-booking .stb-dl-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.stb-booking a.stb-dl-item {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
	min-height: 76px; padding: 8px 4px; margin: 0;
	border: 1px solid #b7dfc3; border-radius: 10px;
	background: var(--stb-ok-soft); color: var(--stb-ok); -webkit-text-fill-color: currentColor;
	text-decoration: none; text-align: center; line-height: 1.15; box-shadow: none;
	touch-action: manipulation; -webkit-tap-highlight-color: transparent; cursor: pointer;
}
.stb-booking a.stb-dl-item:hover, .stb-booking a.stb-dl-item:focus { color: var(--stb-ok); text-decoration: none; }
.stb-booking .stb-dl-dow, .stb-booking .stb-dl-mon { font-size: .75em; text-transform: uppercase; letter-spacing: .03em; }
.stb-booking .stb-dl-day { font-size: 1.5em; font-weight: 700; }
.stb-booking a.stb-dl-item.is-full { background: var(--stb-full-soft); border-color: #f3b8b2; color: var(--stb-full); }
.stb-booking a.stb-dl-item.is-selected, .stb-booking a.stb-dl-item.is-selected:hover, .stb-booking a.stb-dl-item.is-selected:focus {
	background: var(--stb-accent); border-color: var(--stb-accent); color: var(--stb-accent-contrast);
}
.stb-booking .stb-dl-empty { padding: 8px 0; }
.stb-booking .stb-cal-nav .stb-nav-btn {
	-webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; min-width: 0; min-height: 0; padding: 0; margin: 0; line-height: 1;
	border: 1px solid var(--stb-border); border-radius: 50%; background: var(--stb-bg); color: var(--stb-text);
	-webkit-text-fill-color: currentColor; font-size: 20px; box-shadow: none; text-shadow: none; touch-action: manipulation;
}
.stb-booking .stb-cal-nav .stb-nav-btn:disabled { opacity: .35; }

/* ---------- Calendar: jQuery UI Datepicker (table based – same calendar as Appointment Hour Booking) ---------- */
.stb-booking.stb-has-dp .stb-legend { display: flex; }
.stb-booking.stb-has-dp .stb-date-list { display: none !important; }
.stb-booking .stb-dp .ui-datepicker { width: 100% !important; display: block !important; padding: 0; margin: 0; border: 0; background: none; font: inherit; color: var(--stb-text); box-shadow: none; }
.stb-booking .stb-dp .ui-datepicker-multi { display: flex !important; flex-wrap: wrap; gap: 20px; }
.stb-booking .stb-dp .ui-datepicker-group { float: none; flex: 1 1 260px; width: auto !important; min-width: 0; }
.stb-booking .stb-dp .ui-datepicker-row-break { display: none; }
.stb-booking .stb-dp .ui-datepicker-header { position: relative; display: flex; align-items: center; justify-content: center; min-height: 36px; margin: 0 0 6px; padding: 0; border: 0; background: none; }
.stb-booking .stb-dp .ui-datepicker-title { font-weight: 600; text-transform: capitalize; line-height: 36px; }
.stb-booking .stb-dp .ui-datepicker-prev, .stb-booking .stb-dp .ui-datepicker-next {
	position: absolute; top: 0; display: flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border: 1px solid var(--stb-border); border-radius: 50%;
	background: var(--stb-bg); color: var(--stb-text); text-decoration: none; cursor: pointer; font-size: 20px; line-height: 1;
	-webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.stb-booking .stb-dp .ui-datepicker-prev { left: 0; }
.stb-booking .stb-dp .ui-datepicker-next { right: 0; }
.stb-booking .stb-dp .ui-datepicker-prev span, .stb-booking .stb-dp .ui-datepicker-next span { display: block; text-indent: 0; background: none; width: auto; height: auto; position: static; margin: 0; overflow: visible; }
.stb-booking .stb-dp .ui-state-disabled.ui-datepicker-prev, .stb-booking .stb-dp .ui-state-disabled.ui-datepicker-next { opacity: .35; cursor: default; }
.stb-booking .stb-dp table.ui-datepicker-calendar { width: 100% !important; table-layout: fixed; border-collapse: separate !important; border-spacing: 4px !important; margin: 0 !important; border: 0 !important; background: none !important; font-size: 1em; }
.stb-booking .stb-dp table.ui-datepicker-calendar th { padding: 4px 0 !important; border: 0 !important; background: none !important; text-align: center; font-size: .75em; font-weight: 400; color: var(--stb-muted); text-transform: uppercase; }
.stb-booking .stb-dp table.ui-datepicker-calendar td { padding: 0 !important; border: 0 !important; background: none !important; text-align: center; vertical-align: middle; }
.stb-booking .stb-dp table.ui-datepicker-calendar td a,
.stb-booking .stb-dp table.ui-datepicker-calendar td span {
	display: flex !important; align-items: center; justify-content: center; height: 40px; margin: 0; padding: 0 !important;
	border: 0 !important; border-radius: 8px; background: transparent !important; box-shadow: none;
	color: var(--stb-muted) !important; text-decoration: none !important; font-size: .9em; font-weight: 400; line-height: 1; text-align: center;
	-webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-closed span, .stb-booking .stb-dp table.ui-datepicker-calendar td.ui-datepicker-unselectable span { opacity: .45; }
.stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-loading span { background: var(--stb-surface) !important; opacity: 1; }
.stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-available a { background: var(--stb-ok-soft) !important; color: var(--stb-ok) !important; font-weight: 600; cursor: pointer; }
.stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-full a, .stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-full span { background: var(--stb-full-soft) !important; color: var(--stb-full) !important; text-decoration: line-through !important; opacity: 1; }
.stb-booking .stb-dp table.ui-datepicker-calendar td.ui-datepicker-today a, .stb-booking .stb-dp table.ui-datepicker-calendar td.ui-datepicker-today span { box-shadow: inset 0 0 0 1px var(--stb-muted); }
.stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-selected a { background: var(--stb-accent) !important; color: var(--stb-accent-contrast) !important; text-decoration: none !important; }
@media (hover: hover) and (pointer: fine) {
	.stb-booking .stb-dp table.ui-datepicker-calendar td.stb-dp-available:not(.stb-dp-selected) a:hover { background: var(--stb-ok) !important; color: #fff !important; }
}
