.sdb-booking-shell{--sdb-border:#dfe5ec;--sdb-muted:#64748b;--sdb-bg:#f8fafc;--sdb-card:#fff;--sdb-primary:#155e75;--sdb-primary-dark:#164e63;--sdb-soft:#ecfeff;max-width:980px;margin:32px auto;padding:0 16px;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.sdb-booking-card{background:var(--sdb-card);border:1px solid var(--sdb-border);border-radius:22px;box-shadow:0 18px 45px rgba(15,23,42,.08);overflow:hidden}.sdb-booking-hero{display:grid;grid-template-columns:1fr auto;gap:20px;padding:28px;background:linear-gradient(135deg,#f8fafc,#ecfeff);border-block-end:1px solid var(--sdb-border)}.sdb-booking-hero h2{font-size:30px;line-height:1.16;margin:0 0 8px}.sdb-booking-hero p{margin:0;color:var(--sdb-muted);font-size:15px;max-width:680px}.sdb-doctor-mini{min-width:220px;background:#fff;border:1px solid rgba(14,116,144,.18);border-radius:18px;padding:16px;box-shadow:0 10px 25px rgba(8,47,73,.06)}.sdb-doctor-mini strong{display:block;font-size:16px}.sdb-doctor-mini span{display:block;color:var(--sdb-muted);font-size:13px;margin-top:4px}.sdb-booking-body{padding:26px}.sdb-step-title{font-size:16px;margin:0 0 14px;font-weight:700}.sdb-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.sdb-field{display:block}.sdb-field span{display:block;font-weight:650;margin-bottom:8px;font-size:14px}.sdb-field input,.sdb-field select,.sdb-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--sdb-border);border-radius:12px;padding:11px 13px;font-size:15px;min-height:46px;background:#fff;color:#0f172a}.sdb-field textarea{min-height:92px;resize:vertical}.sdb-help{display:block;margin-top:7px;color:var(--sdb-muted);font-size:12px}.sdb-divider{height:1px;background:var(--sdb-border);margin:26px 0}.sdb-availability-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.sdb-availability-header p{margin:0;color:var(--sdb-muted);font-size:13px}.sdb-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.sdb-slot-card{position:relative;display:block;border:1px solid var(--sdb-border);border-radius:16px;background:#fff;padding:14px;padding-inline-start:44px;cursor:pointer;transition:.16s ease;min-height:82px}.sdb-slot-card:hover{border-color:#0e7490;box-shadow:0 12px 25px rgba(14,116,144,.12);transform:translateY(-1px)}.sdb-slot-card input{position:absolute;inset-block-start:17px;inset-inline-start:15px}.sdb-slot-title{display:block;font-weight:750;margin-bottom:4px}.sdb-slot-meta{display:block;color:var(--sdb-muted);font-size:12px;line-height:1.35}.sdb-slot-mode{display:inline-block;margin-top:8px;font-size:11px;padding:4px 8px;border-radius:999px;background:var(--sdb-soft);color:#155e75;font-weight:700}.sdb-state{border:1px dashed var(--sdb-border);background:var(--sdb-bg);border-radius:16px;padding:18px;color:var(--sdb-muted);font-size:14px}.sdb-state strong{color:#0f172a}.sdb-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.sdb-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.sdb-patient-type{display:flex;flex-wrap:wrap;gap:10px}.sdb-radio-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--sdb-border);border-radius:999px;padding:10px 14px;background:#fff;cursor:pointer;font-weight:650}.sdb-actions{display:flex;align-items:center;gap:12px;margin-top:24px}.sdb-button{border:0;border-radius:12px;background:var(--sdb-primary);color:#fff;padding:13px 18px;font-weight:750;cursor:pointer;box-shadow:0 10px 20px rgba(21,94,117,.18)}.sdb-button:hover{background:var(--sdb-primary-dark)}.sdb-button[disabled]{opacity:.62;cursor:not-allowed}.sdb-muted{color:var(--sdb-muted);font-size:13px}.sdb-hidden{display:none!important}@media(max-width:720px){.sdb-booking-hero{grid-template-columns:1fr;padding:22px}.sdb-booking-hero h2{font-size:24px}.sdb-booking-body{padding:20px}.sdb-booking-grid{grid-template-columns:1fr}.sdb-slots{grid-template-columns:1fr}.sdb-actions{align-items:stretch;flex-direction:column}.sdb-button{width:100%}}

.sdb-pay-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: 10px 18px;
	font-weight: 700;
	text-decoration: none;
	background: #1d4ed8;
	color: #fff;
}

.sdb-pay-button:hover,
.sdb-pay-button:focus {
	color: #fff;
	text-decoration: none;
}

/* Phase 10.1 patient result + dashboard polish */
.sdb-payment-result-standalone{background:#f8fafc;margin:0;min-height:100vh;}
.sdb-result-standalone-wrap{max-width:760px;margin:0 auto;padding:56px 20px;}
.sdb-result-card{background:#fff;border:1px solid #e5e7eb;border-radius:24px;box-shadow:0 22px 65px rgba(15,23,42,.10);padding:34px;text-align:center;}
.sdb-result-card h2{font-size:32px;margin:0 0 10px;color:#111827;}
.sdb-result-card p{font-size:16px;line-height:1.6;color:#475569;margin:0 auto 22px;max-width:620px;}
.sdb-result-icon{width:64px;height:64px;border-radius:999px;margin:0 auto 18px;background:#f59e0b;position:relative;}
.sdb-result-card.sdb-is-success .sdb-result-icon{background:#16a34a;}
.sdb-result-card.sdb-is-error .sdb-result-icon{background:#dc2626;}
.sdb-result-card.sdb-is-pending .sdb-result-icon{background:#d97706;}
.sdb-result-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:22px 0;text-align:start;}
.sdb-result-details div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:14px;}
.sdb-result-details span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:6px;}
.sdb-result-details strong{font-size:16px;color:#0f172a;}
.sdb-result-actions{margin-top:22px;}
.sdb-patient-dashboard{max-width:980px;margin:24px auto;}
.sdb-patient-appointments{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:20px;}
.sdb-patient-appointment-card{border:1px solid #e5e7eb;border-radius:18px;padding:16px;background:#fff;box-shadow:0 12px 35px rgba(15,23,42,.06);}
.sdb-patient-appointment-card header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e7eb;padding-bottom:10px;margin-bottom:10px;}
.sdb-patient-appointment-card header span{border-radius:999px;background:#eef2ff;color:#3730a3;padding:4px 10px;font-size:12px;font-weight:700;}
.sdb-patient-appointment-card p{margin:8px 0;color:#334155;}
@media (max-width:640px){.sdb-result-card{padding:24px}.sdb-result-card h2{font-size:26px}}

/* Phase 13 patient self-service */
.sdb-frontend-notice {
	border-radius: 14px;
	margin: 16px 0;
	padding: 12px 14px;
	font-weight: 600;
}
.sdb-frontend-notice.sdb-is-success {
	background: #ecfdf5;
	border: 1px solid #bbf7d0;
	color: #166534;
}
.sdb-frontend-notice.sdb-is-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}
.sdb-patient-request-panel {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	margin-top: 16px;
	padding: 16px;
}
.sdb-patient-request-panel.sdb-is-pending {
	background: #fffbeb;
	border-color: #fde68a;
}
.sdb-patient-request-panel p {
	margin: 6px 0 0;
}
.sdb-patient-request-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	margin-top: 14px;
}
.sdb-patient-request-form {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	display: grid;
	gap: 10px;
	padding: 14px;
}
.sdb-patient-request-form label,
.sdb-mini-grid label {
	display: grid;
	font-size: 13px;
	font-weight: 700;
	gap: 6px;
}
.sdb-patient-request-form textarea,
.sdb-patient-request-form input {
	border: 1px solid #d1d5db;
	border-radius: 10px;
	padding: 9px 10px;
	width: 100%;
}
.sdb-mini-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr 1fr;
}
.sdb-button.sdb-button-secondary {
	background: #334155;
}

/* Phase 14 waitlist */
.sdb-state .sdb-button-secondary {
	display: inline-block;
	margin-top: 10px;
}

/* Phase 16: intake and consent */
.sdb-intake-shell,
.sdb-consent-box {
	background: #fff;
	border: 1px solid rgba(15, 23, 42, 0.10);
	border-radius: 16px;
	padding: 18px;
	margin-top: 12px;
}
.sdb-intake-form h3 {
	margin: 0 0 6px;
	font-size: 18px;
}
.sdb-consent-box .sdb-toggle-row {
	margin: 10px 0;
	align-items: flex-start;
}
.sdb-consent-box .sdb-toggle-row span {
	line-height: 1.5;
}

/* Phase 18 public queue board */
.sdb-queue-public { background: #0f172a; border-radius: 24px; color: #e2e8f0; font-family: inherit; margin: 24px 0; overflow: hidden; padding: clamp(20px, 4vw, 42px); }
.sdb-queue-public-header { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 28px; }
.sdb-queue-public-header p { color: #93c5fd; font-weight: 800; letter-spacing: .05em; margin: 0 0 4px; text-transform: uppercase; }
.sdb-queue-public-header h2 { color: #fff; font-size: clamp(28px, 5vw, 52px); line-height: 1.05; margin: 0; }
.sdb-queue-public-header span { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #cbd5e1; padding: 8px 14px; white-space: nowrap; }
.sdb-queue-public-now { background: #fff; border-radius: 22px; color: #0f172a; margin-bottom: 24px; padding: clamp(18px, 4vw, 38px); text-align: center; }
.sdb-queue-public-now span { color: #475569; display: block; font-size: 14px; font-weight: 900; letter-spacing: .08em; margin-bottom: 8px; text-transform: uppercase; }
.sdb-queue-public-now strong { display: block; font-size: clamp(44px, 10vw, 110px); line-height: .98; }
.sdb-queue-public-next { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 20px; padding: clamp(16px, 3vw, 28px); }
.sdb-queue-public-next h3 { color: #fff; margin: 0 0 14px; }
.sdb-queue-public-next ol { display: grid; gap: 10px; margin: 0; padding-inline-start: 1.4em; }
.sdb-queue-public-next li { background: rgba(255,255,255,.08); border-radius: 14px; color: #f8fafc; font-size: clamp(20px, 4vw, 38px); font-weight: 800; padding: 12px 16px; }
.sdb-queue-public-privacy { color: #94a3b8; font-size: 13px; margin: 18px 0 0; text-align: center; }
.sdb-queue-public-disabled { background: #f8fafc; border: 1px solid #e2e8f0; color: #334155; }
@media (max-width: 640px) { .sdb-queue-public-header { align-items: flex-start; flex-direction: column; } }

/* Phase 21 patient telemedicine panel */
.sdb-telemedicine-panel {
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 12px;
	margin: 14px 0;
	padding: 14px;
	background: rgba(0, 0, 0, 0.02);
}

.sdb-telemedicine-panel.sdb-is-open {
	background: rgba(0, 128, 0, 0.06);
}

.sdb-telemedicine-panel.sdb-is-locked {
	background: rgba(160, 120, 0, 0.06);
}

.sdb-telemedicine-instructions {
	margin-top: 10px;
}

/* Phase 22: Booking widget and hosted embed */
.sdb-booking-widget-card {
	align-items: center;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 18px;
	box-shadow: 0 12px 35px rgba(15, 23, 42, 0.08);
	display: flex;
	gap: 18px;
	justify-content: space-between;
	padding: 22px;
}
.sdb-booking-widget-card h3 {
	font-size: 1.35rem;
	line-height: 1.25;
	margin: 4px 0 8px;
}
.sdb-booking-widget-card p {
	margin: 0 0 12px;
}
.sdb-booking-widget-card .sdb-kicker {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: .08em;
	margin: 0;
	text-transform: uppercase;
}
.sdb-widget-cta {
	display: inline-flex;
	text-decoration: none;
}
.sdb-booking-widget-qr {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	flex: 0 0 auto;
	padding: 8px;
}
.sdb-embed-branding {
	color: #64748b;
	font-size: 12px;
	margin: 0 auto 18px;
	max-width: 900px;
	padding: 0 18px;
	text-align: center;
}
@media (max-width: 640px) {
	.sdb-booking-widget-card {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* Phase 23 localization and RTL polish. */
.sdb-booking-shell[dir="rtl"],
.sdb-patient-dashboard[dir="rtl"],
.sdb-result-card[dir="rtl"],
.sdb-queue-public[dir="rtl"],
.sdb-booking-widget-card[dir="rtl"],
body.sdb-dir-rtl .sdb-booking-shell,
body.sdb-dir-rtl .sdb-patient-dashboard,
body.sdb-dir-rtl .sdb-result-card,
body.sdb-dir-rtl .sdb-queue-public,
body.sdb-dir-rtl .sdb-booking-widget-card {
	direction: rtl;
	text-align: start;
}
.sdb-booking-shell[dir="rtl"] input,
.sdb-booking-shell[dir="rtl"] select,
.sdb-booking-shell[dir="rtl"] textarea,
.sdb-patient-dashboard[dir="rtl"] input,
.sdb-patient-dashboard[dir="rtl"] select,
.sdb-patient-dashboard[dir="rtl"] textarea,
body.sdb-dir-rtl .sdb-booking-shell input,
body.sdb-dir-rtl .sdb-booking-shell select,
body.sdb-dir-rtl .sdb-booking-shell textarea,
body.sdb-dir-rtl .sdb-patient-dashboard input,
body.sdb-dir-rtl .sdb-patient-dashboard select,
body.sdb-dir-rtl .sdb-patient-dashboard textarea {
	text-align: start;
}
.sdb-queue-public[dir="rtl"] ol,
body.sdb-dir-rtl .sdb-queue-public ol {
	padding-inline: 1.5em 0;
}
.sdb-booking-widget-card[dir="rtl"],
body.sdb-dir-rtl .sdb-booking-widget-card {
	text-align: start;
}

/* STEP 5.1: patient-facing responsive, state, and theme-isolation pass. */
.sdb-patient-dashboard,
.sdb-result-card,
.sdb-booking-widget-card,
.sdb-queue-public {
	--sdb-border: #dfe5ec;
	--sdb-muted: #64748b;
	--sdb-bg: #f8fafc;
	--sdb-card: #fff;
	--sdb-primary: #155e75;
	--sdb-primary-dark: #164e63;
	--sdb-soft: #ecfeff;
}

.sdb-booking-shell,
.sdb-patient-dashboard,
.sdb-result-card,
.sdb-booking-widget-card,
.sdb-queue-public {
	box-sizing: border-box;
}

.sdb-booking-shell *,
.sdb-booking-shell *::before,
.sdb-booking-shell *::after,
.sdb-patient-dashboard *,
.sdb-patient-dashboard *::before,
.sdb-patient-dashboard *::after,
.sdb-result-card *,
.sdb-result-card *::before,
.sdb-result-card *::after,
.sdb-booking-widget-card *,
.sdb-booking-widget-card *::before,
.sdb-booking-widget-card *::after,
.sdb-queue-public *,
.sdb-queue-public *::before,
.sdb-queue-public *::after {
	box-sizing: border-box;
}

.sdb-field input,
.sdb-field select,
.sdb-field textarea,
.sdb-patient-request-form input,
.sdb-patient-request-form textarea {
	font: inherit;
	line-height: 1.4;
	max-width: 100%;
}

.sdb-field input[type="file"] {
	height: auto;
	overflow: hidden;
	padding: 10px;
}

.sdb-booking-shell .sdb-button,
.sdb-patient-dashboard .sdb-button,
.sdb-result-card .sdb-button,
.sdb-booking-widget-card .sdb-button {
	-webkit-appearance: none;
	appearance: none;
	align-items: center;
	border: 0;
	display: inline-flex;
	font: inherit;
	justify-content: center;
	line-height: 1.25;
	min-height: 44px;
	text-align: center;
	text-decoration: none;
}

.sdb-button:focus-visible,
.sdb-pay-button:focus-visible,
.sdb-widget-cta:focus-visible,
.sdb-field input:focus-visible,
.sdb-field select:focus-visible,
.sdb-field textarea:focus-visible,
.sdb-patient-request-form input:focus-visible,
.sdb-patient-request-form textarea:focus-visible,
.sdb-patient-dashboard a:focus-visible,
.sdb-slot-card:focus-within {
	outline: 3px solid #22d3ee;
	outline-offset: 3px;
}

.sdb-slot-card.sdb-slot-selected {
	background: var(--sdb-soft);
	border-color: var(--sdb-primary);
	box-shadow: 0 0 0 2px rgba(21, 94, 117, 0.14);
}

.sdb-availability-results {
	min-height: 58px;
}

.sdb-form-notice {
	margin-top: 16px;
}

.sdb-state-loading::before {
	animation: sdb-spin 0.8s linear infinite;
	border: 3px solid rgba(21, 94, 117, 0.2);
	border-radius: 999px;
	border-top-color: var(--sdb-primary);
	content: "";
	display: inline-block;
	height: 18px;
	margin-inline-end: 8px;
	vertical-align: -3px;
	width: 18px;
}

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

.sdb-field-wide {
	grid-column: 1 / -1;
}

.sdb-checkbox-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
}

.sdb-checkbox-row label,
.sdb-toggle-row {
	align-items: flex-start;
	display: flex;
	gap: 8px;
}

.sdb-checkbox-row input,
.sdb-toggle-row input,
.sdb-radio-pill input {
	flex: 0 0 auto;
	margin-top: 3px;
}

.sdb-booking-hero,
.sdb-doctor-mini,
.sdb-availability-header,
.sdb-slot-card,
.sdb-state,
.sdb-result-card,
.sdb-patient-dashboard,
.sdb-patient-appointment-card,
.sdb-patient-request-panel,
.sdb-patient-request-form,
.sdb-telemedicine-panel,
.sdb-queue-public {
	min-width: 0;
}

.sdb-booking-hero p,
.sdb-doctor-mini,
.sdb-slot-title,
.sdb-slot-meta,
.sdb-state,
.sdb-result-card,
.sdb-result-details strong,
.sdb-patient-dashboard,
.sdb-patient-appointment-card,
.sdb-patient-request-panel,
.sdb-telemedicine-panel,
.sdb-telemedicine-instructions,
.sdb-queue-public,
.sdb-queue-public-now strong,
.sdb-queue-public-next li {
	overflow-wrap: anywhere;
}

.sdb-patient-dashboard {
	background: var(--sdb-card);
	padding: clamp(20px, 4vw, 30px);
	width: min(980px, calc(100% - 32px));
}

.sdb-patient-dashboard > h2 {
	color: #0f172a;
	font-size: clamp(26px, 4vw, 34px);
	line-height: 1.2;
	margin: 0 0 10px;
}

.sdb-patient-dashboard > p {
	line-height: 1.6;
}

.sdb-patient-dashboard a:not(.sdb-button) {
	color: #0e7490;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.sdb-patient-appointments,
.sdb-patient-request-grid,
.sdb-result-details {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

.sdb-result-details {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
}

.sdb-patient-appointment-card header {
	flex-wrap: wrap;
	gap: 8px 12px;
}

.sdb-patient-appointment-card header span {
	max-width: 100%;
	overflow-wrap: anywhere;
}

.sdb-dashboard-access-form {
	align-items: end;
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(0, 1fr) auto;
	margin-top: 18px;
}

.sdb-dashboard-access-form .sdb-field {
	min-width: 0;
}

.sdb-form-submit-status {
	color: var(--sdb-muted);
	display: none;
	font-size: 13px;
	grid-column: 1 / -1;
}

.sdb-form-submit-status.sdb-form-submit-status-visible {
	display: block;
}

.sdb-patient-request-form input,
.sdb-patient-request-form textarea {
	background: #fff;
	color: #0f172a;
}

.sdb-patient-request-form .sdb-button {
	justify-self: start;
}

.sdb-telemedicine-panel .sdb-button {
	max-width: 100%;
}

.sdb-result-card {
	margin-inline: auto;
	max-width: 720px;
}

.sdb-result-actions .sdb-button,
.sdb-pay-button {
	max-width: 100%;
}

.sdb-queue-public {
	width: 100%;
}

.sdb-queue-public-state,
.sdb-queue-public-empty {
	line-height: 1.6;
	margin: 0;
}

.sdb-queue-public-empty {
	background: rgba(255, 255, 255, 0.08);
	border: 1px dashed rgba(255, 255, 255, 0.24);
	border-radius: 14px;
	color: #e2e8f0;
	padding: 14px 16px;
}

.sdb-queue-public-disabled,
.sdb-queue-public-error {
	border-radius: 16px;
	padding: 18px;
}

.sdb-queue-public-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.sdb-queue-public-is-empty .sdb-queue-public-now {
	background: #f8fafc;
}

@media (max-width: 720px) {
	.sdb-booking-shell {
		margin: 16px auto;
		padding: 0 12px;
	}

	.sdb-doctor-mini {
		min-width: 0;
		width: 100%;
	}

	.sdb-availability-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.sdb-field input,
	.sdb-field select,
	.sdb-field textarea,
	.sdb-patient-request-form input,
	.sdb-patient-request-form textarea {
		font-size: 16px;
	}

	.sdb-patient-dashboard {
		margin: 12px auto;
		padding: 18px;
		width: calc(100% - 24px);
	}

	.sdb-patient-appointments,
	.sdb-patient-request-grid,
	.sdb-mini-grid,
	.sdb-dashboard-access-form,
	.sdb-result-details {
		grid-template-columns: minmax(0, 1fr);
	}

	.sdb-dashboard-access-form .sdb-button,
	.sdb-patient-request-form .sdb-button,
	.sdb-telemedicine-panel .sdb-button,
	.sdb-result-actions .sdb-button,
	.sdb-pay-button {
		justify-self: stretch;
		width: 100%;
	}

	.sdb-result-standalone-wrap {
		padding: 24px 12px;
	}

	.sdb-result-card {
		border-radius: 18px;
		padding: 22px 18px;
	}

	.sdb-queue-public {
		border-radius: 16px;
		margin: 16px 0;
	}

	.sdb-queue-public-header span {
		max-width: 100%;
		white-space: normal;
	}

	.sdb-queue-public-next ol {
		padding-inline-start: 1.15em;
	}

	.sdb-queue-public-next li {
		padding: 10px 12px;
	}
}

@media (max-width: 360px) {
	.sdb-booking-hero,
	.sdb-booking-body,
	.sdb-patient-dashboard,
	.sdb-result-card,
	.sdb-queue-public {
		padding: 16px;
	}

	.sdb-radio-pill {
		border-radius: 16px;
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sdb-slot-card {
		transition: none;
	}

	.sdb-state-loading::before {
		animation-duration: 1.6s;
	}
}

/* Phase 2: editable language selector and script-aware typography. */
.sdb-language-switcher{display:flex;justify-content:flex-end;margin:0 0 12px;}
.sdb-language-switcher label{align-items:center;background:#fff;border:1px solid #dfe5ec;border-radius:999px;box-shadow:0 8px 24px rgba(15,23,42,.06);display:flex;gap:10px;padding-block:7px;padding-inline:14px 9px;}
.sdb-language-switcher span{color:#475569;font-size:13px;font-weight:700;}
.sdb-language-switcher select{appearance:auto;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;font-size:14px;min-height:44px;padding-block:5px;padding-inline:11px 28px;}
.sdb-booking-shell[lang="bn"],.sdb-patient-dashboard[lang="bn"],.sdb-result-card[lang="bn"]{font-family:"Noto Sans Bengali","Nirmala UI","Vrinda",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.sdb-booking-shell[dir="rtl"],.sdb-patient-dashboard[dir="rtl"],.sdb-result-card[dir="rtl"]{direction:rtl;text-align:start;}
@media(max-width:720px){.sdb-language-switcher{justify-content:stretch}.sdb-language-switcher label{border-radius:14px;justify-content:space-between;width:100%}.sdb-language-switcher select{max-width:60%;}}

/* Phase 3: Elementor field-level layout, preview safety, and presets. */
.sdb-booking-body {
	display: flex;
	flex-direction: column;
}

.sdb-form-section {
	box-sizing: border-box;
	min-width: 0;
	width: 100%;
}

.sdb-booking-card [data-sdb-widget-config] {
	display: none !important;
}

.sdb-editor-preview-note {
	background: #eff6ff;
	border-bottom: 1px solid #bfdbfe;
	color: #1e3a8a;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	padding: 10px 18px;
	text-align: center;
}

.sdb-elementor-widget.sdb-layout-flat {
	padding-inline: 0;
}

.sdb-elementor-widget.sdb-layout-flat .sdb-booking-card {
	border-radius: 0;
	box-shadow: none;
}

.sdb-elementor-widget.sdb-layout-minimal {
	padding-inline: 0;
}

.sdb-elementor-widget.sdb-layout-minimal .sdb-booking-card {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	overflow: visible;
}

.sdb-elementor-widget.sdb-layout-minimal .sdb-booking-hero {
	background: transparent;
	border: 0;
	padding-inline: 0;
}

.sdb-elementor-widget.sdb-layout-minimal .sdb-booking-body {
	padding-inline: 0;
}

.sdb-elementor-widget.sdb-hero-stacked .sdb-booking-hero {
	grid-template-columns: minmax(0, 1fr);
}

.sdb-elementor-widget.sdb-hero-stacked .sdb-doctor-mini {
	min-width: 0;
	width: 100%;
}

.sdb-elementor-widget.sdb-actions-stacked .sdb-actions {
	align-items: stretch;
	flex-direction: column;
}

.sdb-elementor-widget.sdb-actions-stacked .sdb-actions > .sdb-button {
	justify-content: center;
	width: 100%;
}

@media (min-width: 850px) {
	.sdb-elementor-widget.sdb-labels-inline .sdb-field:not(.sdb-field-wide) {
		align-items: center;
		display: grid;
		gap: 8px 16px;
		grid-template-columns: minmax(130px, 32%) minmax(0, 1fr);
	}

	.sdb-elementor-widget.sdb-labels-inline .sdb-field:not(.sdb-field-wide) > span {
		margin-bottom: 0;
	}

	.sdb-elementor-widget.sdb-labels-inline .sdb-field:not(.sdb-field-wide) > .sdb-help {
		grid-column: 2;
	}
}

@media (max-width: 720px) {
	.sdb-elementor-widget .sdb-booking-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* Phase 2 patient-access security and anti-abuse states. */
.sdb-hp-field {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	inset-block-start: 0;
	inset-inline-start: 0;
	overflow: hidden;
	position: absolute !important;
	white-space: nowrap;
	width: 1px;
}

.sdb-dashboard-security-note {
	align-items: center;
	background: #f0f7ff;
	border: 1px solid #bfd7f2;
	border-radius: 12px;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-block: 18px;
	padding: 16px;
}

.sdb-dashboard-security-note p {
	margin: 4px 0 0;
}

.sdb-token-expiry {
	font-size: 0.92em;
}

.sdb-dashboard-revoke-form {
	flex: 0 0 auto;
	margin: 0;
}

@media (max-width: 640px) {
	.sdb-dashboard-security-note {
		align-items: stretch;
		flex-direction: column;
	}

	.sdb-dashboard-revoke-form .sdb-button {
		width: 100%;
	}
}

/* Phase 4 patient self-service: billing, history, and verified rescheduling. */
.sdb-patient-billing-panel,
.sdb-patient-history,
.sdb-reschedule-options {
	background: #f8fafc;
	border: 1px solid #dbe4ee;
	border-radius: 12px;
	margin-top: 14px;
	padding: 14px;
}

.sdb-patient-billing-grid {
	display: grid;
	gap: 8px 14px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 10px;
}

.sdb-patient-billing-grid span {
	background: #fff;
	border: 1px solid #e3e9f0;
	border-radius: 8px;
	padding: 9px 10px;
}

.sdb-button-small {
	font-size: .9em;
	margin-top: 12px;
	min-height: 44px;
	padding: 8px 13px;
}

.sdb-patient-history summary {
	cursor: pointer;
	font-weight: 700;
}

.sdb-patient-history ol {
	margin: 12px 0 0;
	padding-inline-start: 22px;
}

.sdb-patient-history li + li {
	margin-top: 8px;
}

.sdb-reschedule-options[aria-busy="true"] {
	opacity: .72;
}

.sdb-reschedule-options.sdb-is-error {
	background: #fff5f5;
	border-color: #efb4b4;
	color: #8f2424;
}

.sdb-reschedule-option-list {
	display: grid;
	gap: 9px;
}

.sdb-reschedule-option {
	align-items: flex-start;
	background: #fff;
	border: 1px solid #dbe4ee;
	border-radius: 10px;
	cursor: pointer;
	display: flex;
	gap: 10px;
	padding: 11px 12px;
}

.sdb-reschedule-option:has(input:checked) {
	border-color: #2563eb;
	box-shadow: 0 0 0 2px rgba(37, 99, 235, .14);
}

.sdb-reschedule-option input {
	flex: 0 0 auto;
	margin-top: 3px;
}

.sdb-reschedule-option span,
.sdb-reschedule-option small {
	display: block;
}

.sdb-reschedule-option small {
	color: #526274;
	margin-top: 3px;
}

.sdb-reschedule-option:focus-within {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

@media (max-width: 640px) {
	.sdb-patient-billing-grid {
		grid-template-columns: 1fr;
	}
}

/* Phase 7: live queue, patient check-in, and workflow states. */
.sdb-patient-queue-panel {
	background: #f7fafc;
	border: 1px solid #dbe4ee;
	border-radius: 12px;
	margin-top: 14px;
	padding: 14px;
}

.sdb-patient-queue-panel dl {
	display: grid;
	gap: 8px 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 10px 0 0;
}

.sdb-patient-queue-panel dl > div {
	background: #fff;
	border: 1px solid #dbe4ee;
	border-radius: 9px;
	padding: 9px 10px;
}

.sdb-patient-queue-panel dt {
	color: #526274;
	font-size: .85em;
}

.sdb-patient-queue-panel dd {
	font-weight: 700;
	margin: 3px 0 0;
}

.sdb-patient-checkin-form {
	margin-top: 12px;
}

.sdb-queue-public[aria-busy="true"] {
	opacity: .82;
}

.sdb-queue-public-updated,
.sdb-queue-public-error-message {
	font-size: .9em;
	margin-top: 10px;
}

.sdb-queue-public-error-message {
	background: #fff5f5;
	border: 1px solid #efb4b4;
	border-radius: 8px;
	color: #8f2424;
	padding: 9px 10px;
}

.sdb-queue-public [hidden] {
	display: none !important;
}

@media (max-width: 640px) {
	.sdb-patient-queue-panel dl {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sdb-queue-public,
	.sdb-patient-queue-panel {
		scroll-behavior: auto;
		transition: none;
	}
}

/* Phase 8: scalable service catalog and block-rendered public surfaces. */
.sdb-service-catalog {
	margin: 24px 0;
}

.sdb-service-catalog > h2 {
	margin-bottom: 16px;
}

.sdb-service-catalog-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(var(--sdb-service-columns, 3), minmax(0, 1fr));
}

.sdb-service-columns-1 { --sdb-service-columns: 1; }
.sdb-service-columns-2 { --sdb-service-columns: 2; }
.sdb-service-columns-3 { --sdb-service-columns: 3; }
.sdb-service-columns-4 { --sdb-service-columns: 4; }

.sdb-service-catalog-card {
	background: #fff;
	border: 1px solid #dbe4ee;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	padding: 18px;
}

.sdb-service-catalog-card h3 {
	margin: 0 0 8px;
}

.sdb-service-catalog-card p {
	margin: 0 0 12px;
}

.sdb-service-catalog-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	list-style: none;
	margin: auto 0 0;
	padding: 0;
}

.sdb-service-catalog-card .sdb-button {
	align-self: flex-start;
}

@media (max-width: 900px) {
	.sdb-service-catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.sdb-service-catalog-grid {
		grid-template-columns: 1fr;
	}
}

@media print {
	.sdb-queue-public-updated,
	.sdb-queue-public-error-message,
	.sdb-patient-checkin-form,
	.sdb-service-catalog-card .sdb-button {
		display: none !important;
	}
	.sdb-service-catalog-grid {
		display: block;
	}
	.sdb-service-catalog-card {
		break-inside: avoid;
		margin-bottom: 12px;
	}
}

/* Manual payment proof workflow */
.sdb-manual-payment-panel{margin-top:18px;padding:18px;border:1px solid #d6deea;border-radius:12px;background:#f8fafc}
.sdb-manual-payment-panel h3{margin:0 0 10px}
.sdb-manual-payment-methods{display:grid;gap:10px;margin:12px 0 16px}
.sdb-manual-payment-method{padding:12px;border:1px solid #d8e0ea;border-radius:9px;background:#fff}
.sdb-manual-payment-method strong,.sdb-manual-payment-method div,.sdb-manual-payment-method small{display:block}
.sdb-manual-payment-method small{margin-top:5px;color:#536071}
.sdb-manual-payment-proof-form{display:grid;gap:12px;margin-top:14px}
.sdb-manual-payment-proof-form .sdb-form-submit-status-visible{display:block;margin-top:6px}
.sdb-manual-payment-proof-form input[type="file"]{padding:9px;background:#fff;border:1px solid #cbd5e1;border-radius:7px}

/* Patient appointment confirmation PDF actions */
.sdb-confirmation-pdf-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:center}.sdb-confirmation-pdf-actions .sdb-button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.sdb-confirmation-pdf-actions-result{margin-top:18px}.sdb-confirmation-pdf-actions-result .sdb-button{margin:0 4px 6px}.sdb-button-secondary{background:#fff!important;color:var(--sdb-primary,#155e75)!important;border:1px solid currentColor!important;box-shadow:none!important}@media(max-width:640px){.sdb-confirmation-pdf-actions{flex-direction:column;align-items:stretch}.sdb-confirmation-pdf-actions .sdb-button{width:100%;box-sizing:border-box}}


/* 1.7.1 patient dashboard, review state, and capacity feedback */
.sdb-dashboard-empty{
	align-items:center;
	background:linear-gradient(135deg,#f8fafc 0%,#eef6ff 100%);
	border:1px solid #dbeafe;
	display:flex;
	gap:18px;
	padding:24px;
}
.sdb-dashboard-empty-icon{
	align-items:center;
	background:#fff;
	border:1px solid #dbeafe;
	border-radius:18px;
	display:flex;
	font-size:30px;
	height:64px;
	justify-content:center;
	width:64px;
}
.sdb-dashboard-empty p{margin:7px 0 14px;max-width:650px;}
.sdb-patient-appointment-card header>div{display:grid;gap:2px;}
.sdb-patient-appointment-card header small{color:#64748b;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;}
.sdb-patient-appointment-card[data-appointment-status="confirmed"] header span,
.sdb-patient-appointment-card[data-appointment-status="completed"] header span{background:#dcfce7;color:#166534;}
.sdb-patient-appointment-card[data-appointment-status="held"] header span{background:#fff7ed;color:#9a3412;}
.sdb-patient-appointment-card[data-appointment-status="cancelled"] header span,
.sdb-patient-appointment-card[data-appointment-status="failed"] header span,
.sdb-patient-appointment-card[data-appointment-status="expired"] header span{background:#f1f5f9;color:#475569;}
.sdb-slot-card.sdb-slot-full{cursor:not-allowed;opacity:.62;}
.sdb-slot-card.sdb-slot-full .sdb-remaining-seats{background:#f1f5f9;color:#475569;}
[data-sdb-review-state]:not([hidden]){color:#166534;font-weight:700;}
@media(max-width:640px){.sdb-dashboard-empty{align-items:flex-start;flex-direction:column;}}
.sdb-patient-appointment-card[data-appointment-status="payment_under_review"] header span{background:#eff6ff;color:#1d4ed8;}

.sdb-account-setup-result{margin-top:18px;padding:16px;border:1px solid #bfd0ef;border-radius:12px;background:#f0f5ff;color:#16365f}.sdb-account-setup-result small{display:inline-block;margin:4px 0 12px;line-height:1.5}.sdb-account-prefill-note{margin:0 0 14px;padding:10px 12px;border:1px solid #a8ded8;border-radius:9px;background:#e7f8f6;color:#075f60;font-size:13px;line-height:1.5}

/* Phase 3 guest communication preference fallback styling. */
.sdb-communication-preference{min-inline-size:0;margin:18px 0 0;padding:16px;border:1px solid var(--sdb-border,#dfe5ec);border-radius:16px;background:var(--sdb-bg,#f8fafc)}.sdb-communication-preference legend{padding:0 6px;font-weight:750;font-size:14px}.sdb-communication-preference .sdb-patient-type{margin-top:4px}.sdb-communication-preference .sdb-help{margin-top:10px}

/* Phase 4 booking-completion choices */
.sdb-booking-next-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.sdb-booking-next-option{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border:1px solid #bfd0ef;border-radius:12px;background:#f8fbff;color:#16365f}.sdb-booking-next-option strong{font-size:16px}.sdb-booking-next-option small{display:block;line-height:1.5;flex:1}.sdb-booking-next-option .sdb-button{margin-top:4px;text-align:center}.sdb-booking-next-guest{border-color:#a8ded8;background:#f0fdfa;color:#075f60}@media(max-width:640px){.sdb-booking-next-actions{grid-template-columns:1fr}.sdb-booking-next-option .sdb-button{width:100%;box-sizing:border-box}}
