/**
 * Patient Portal - Stitch clinical clarity UI.
 * Presentation-only layer for [sdb_patient_dashboard].
 */

.sdb-patient-portal {
	--sdb-portal-primary: #003c90;
	--sdb-portal-primary-strong: #002e70;
	--sdb-portal-primary-soft: #e8efff;
	--sdb-portal-teal: #006a6a;
	--sdb-portal-teal-soft: #dff8f7;
	--sdb-portal-green: #147d64;
	--sdb-portal-green-soft: #e3f7f0;
	--sdb-portal-amber: #9a6700;
	--sdb-portal-amber-soft: #fff3d3;
	--sdb-portal-red: #b42318;
	--sdb-portal-red-soft: #ffebe9;
	--sdb-portal-ink: #0d1c2e;
	--sdb-portal-muted: #596575;
	--sdb-portal-border: #d7dfed;
	--sdb-portal-border-strong: #bdc9dc;
	--sdb-portal-surface: #ffffff;
	--sdb-portal-page: #f4f7fd;
	--sdb-portal-panel: #edf3ff;
	--sdb-portal-shadow: 0 12px 30px rgba(28, 49, 83, 0.08);
	--sdb-portal-shadow-soft: 0 4px 14px rgba(28, 49, 83, 0.07);
	width: min(1220px, calc(100% - 32px)) !important;
	max-width: 1220px !important;
	margin: 32px auto !important;
	padding: 0 !important;
	color: var(--sdb-portal-ink) !important;
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: 15px;
	line-height: 1.55;
	background: var(--sdb-portal-page) !important;
	border: 1px solid var(--sdb-portal-border) !important;
	border-radius: 20px !important;
	box-shadow: var(--sdb-portal-shadow) !important;
	overflow: hidden;
	isolation: isolate;
}

.sdb-patient-portal,
.sdb-patient-portal *,
.sdb-patient-portal *::before,
.sdb-patient-portal *::after {
	box-sizing: border-box;
}

.sdb-patient-portal a,
.sdb-patient-portal.sdb-patient-dashboard a:not(.sdb-button) {
	text-decoration: none;
}

.sdb-patient-portal svg {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.sdb-portal-layout {
	display: grid;
	grid-template-columns: 230px minmax(0, 1fr);
	min-height: 690px;
}

.sdb-portal-sidebar {
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: 26px 18px 22px;
	background: var(--sdb-portal-surface);
	border-inline-end: 1px solid var(--sdb-portal-border);
}

.sdb-portal-brand {
	display: flex;
	align-items: center;
	gap: 11px;
	min-width: 0;
	color: var(--sdb-portal-ink) !important;
}

.sdb-portal-brand-mark {
	display: grid;
	place-items: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	color: #fff;
	background: linear-gradient(145deg, var(--sdb-portal-primary), #1f62c8);
	box-shadow: 0 6px 16px rgba(0, 60, 144, 0.24);
}

.sdb-portal-brand-mark svg {
	width: 23px;
	height: 23px;
}

.sdb-portal-brand > span:last-child {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.sdb-portal-brand strong {
	font-size: 15px;
	font-weight: 750;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--sdb-portal-primary);
}

.sdb-portal-brand small {
	margin-top: 2px;
	font-size: 10px;
	line-height: 1.25;
	color: var(--sdb-portal-muted);
}

.sdb-portal-nav {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 7px;
}

.sdb-portal-nav a {
	display: flex;
	align-items: center;
	gap: 11px;
	min-height: 42px;
	padding: 10px 12px;
	border: 1px solid transparent;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 650;
	color: #445268 !important;
	transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.sdb-portal-nav a:hover,
.sdb-portal-nav a:focus-visible {
	color: var(--sdb-portal-primary) !important;
	background: #f0f4fc;
	border-color: #dbe5f5;
	transform: translateX(2px);
}

.sdb-patient-portal[dir="rtl"] .sdb-portal-nav a:hover,
.sdb-patient-portal[dir="rtl"] .sdb-portal-nav a:focus-visible {
	transform: translateX(-2px);
}

.sdb-portal-nav a.is-active {
	color: var(--sdb-portal-primary) !important;
	background: var(--sdb-portal-primary-soft);
	border-color: #c5d6fb;
	box-shadow: inset 3px 0 0 var(--sdb-portal-primary);
}

.sdb-patient-portal[dir="rtl"] .sdb-portal-nav a.is-active {
	box-shadow: inset -3px 0 0 var(--sdb-portal-primary);
}

.sdb-portal-nav svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
}

.sdb-patient-portal .sdb-button.sdb-portal-book-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 7px;
	width: 100%;
	min-height: 42px;
	padding: 10px 14px !important;
	font-size: 12px !important;
}

.sdb-portal-book-button > span {
	font-size: 19px;
	font-weight: 400;
	line-height: 1;
}

.sdb-portal-main {
	min-width: 0;
	padding: 34px 38px 46px;
	background: var(--sdb-portal-page);
	scroll-margin-top: 20px;
}

.sdb-portal-topbar {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 28px;
	margin-bottom: 24px;
}

.sdb-portal-eyebrow {
	display: block;
	margin-bottom: 5px;
	font-size: 11px;
	font-weight: 750;
	line-height: 1.4;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--sdb-portal-primary);
}

.sdb-portal-main h2,
.sdb-portal-main h3,
.sdb-portal-access-card h2 {
	margin: 0 !important;
	color: var(--sdb-portal-ink) !important;
	font-family: inherit !important;
	letter-spacing: -0.025em;
}

.sdb-portal-main h2 {
	font-size: clamp(28px, 3vw, 36px) !important;
	font-weight: 760 !important;
	line-height: 1.15 !important;
}

.sdb-portal-main h3 {
	font-size: 22px !important;
	font-weight: 720 !important;
	line-height: 1.25 !important;
}

.sdb-portal-topbar p {
	max-width: 690px;
	margin: 9px 0 0 !important;
	font-size: 14px;
	line-height: 1.6;
	color: var(--sdb-portal-muted) !important;
}

.sdb-patient-portal .sdb-button,
.sdb-patient-portal button.sdb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 9px 16px !important;
	border: 1px solid var(--sdb-portal-primary) !important;
	border-radius: 8px !important;
	font: inherit !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	color: #fff !important;
	background: var(--sdb-portal-primary) !important;
	box-shadow: 0 4px 10px rgba(0, 60, 144, 0.16) !important;
	cursor: pointer;
	transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.sdb-patient-portal .sdb-button:hover,
.sdb-patient-portal .sdb-button:focus-visible,
.sdb-patient-portal button.sdb-button:hover,
.sdb-patient-portal button.sdb-button:focus-visible {
	color: #fff !important;
	background: var(--sdb-portal-primary-strong) !important;
	border-color: var(--sdb-portal-primary-strong) !important;
	box-shadow: 0 6px 16px rgba(0, 60, 144, 0.22) !important;
	transform: translateY(-1px);
}

.sdb-patient-portal .sdb-button-secondary,
.sdb-patient-portal button.sdb-button-secondary {
	color: var(--sdb-portal-primary) !important;
	background: #fff !important;
	border-color: #9db4de !important;
	box-shadow: none !important;
}

.sdb-patient-portal .sdb-button-secondary:hover,
.sdb-patient-portal .sdb-button-secondary:focus-visible,
.sdb-patient-portal button.sdb-button-secondary:hover,
.sdb-patient-portal button.sdb-button-secondary:focus-visible {
	color: var(--sdb-portal-primary-strong) !important;
	background: var(--sdb-portal-primary-soft) !important;
	border-color: var(--sdb-portal-primary) !important;
}

.sdb-patient-portal .sdb-button-small {
	min-height: 34px;
	padding: 7px 12px !important;
	font-size: 12px !important;
}

.sdb-patient-portal .sdb-button[disabled],
.sdb-patient-portal button[disabled] {
	opacity: 0.55;
	box-shadow: none !important;
	cursor: not-allowed;
	transform: none !important;
}

.sdb-portal-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 20px;
}

.sdb-portal-summary-card {
	display: flex;
	align-items: center;
	gap: 13px;
	min-height: 88px;
	padding: 17px 18px;
	background: var(--sdb-portal-surface);
	border: 1px solid var(--sdb-portal-border);
	border-radius: 12px;
	box-shadow: var(--sdb-portal-shadow-soft);
}

.sdb-portal-summary-icon {
	display: grid;
	place-items: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	color: var(--sdb-portal-primary);
	background: var(--sdb-portal-primary-soft);
}

.sdb-portal-summary-icon.sdb-is-teal {
	color: var(--sdb-portal-teal);
	background: var(--sdb-portal-teal-soft);
}

.sdb-portal-summary-icon.sdb-is-green {
	color: var(--sdb-portal-green);
	background: var(--sdb-portal-green-soft);
}

.sdb-portal-summary-icon svg {
	width: 20px;
	height: 20px;
}

.sdb-portal-summary-card > span:last-child {
	display: flex;
	flex-direction: column;
}

.sdb-portal-summary-card small {
	font-size: 11px;
	font-weight: 650;
	letter-spacing: 0.02em;
	color: var(--sdb-portal-muted);
}

.sdb-portal-summary-card strong {
	margin-top: 1px;
	font-size: 24px;
	font-weight: 760;
	line-height: 1.1;
	color: var(--sdb-portal-ink);
}

.sdb-patient-portal .sdb-dashboard-security-note {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	margin: 0 0 20px !important;
	padding: 16px 17px !important;
	background: #e8f6f5 !important;
	border: 1px solid #abdcd8 !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	scroll-margin-top: 20px;
}

.sdb-dashboard-security-icon {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	color: var(--sdb-portal-teal);
	background: #fff;
	border: 1px solid #b7dfdc;
}

.sdb-dashboard-security-icon svg {
	width: 19px;
	height: 19px;
}

.sdb-patient-portal .sdb-dashboard-security-note strong {
	font-size: 13px;
	font-weight: 750;
	color: #064f50;
}

.sdb-patient-portal .sdb-dashboard-security-note p {
	margin: 3px 0 0 !important;
	font-size: 12px;
	line-height: 1.5;
	color: #376466 !important;
}

.sdb-patient-portal .sdb-dashboard-revoke-form {
	margin: 0;
}

.sdb-patient-portal .sdb-dashboard-revoke-form .sdb-button {
	white-space: nowrap;
	border-color: #75aaa7 !important;
	color: #075f60 !important;
}

.sdb-patient-portal .sdb-frontend-notice {
	margin: 0 0 18px !important;
	padding: 13px 15px !important;
	border: 1px solid #b7d2bf !important;
	border-inline-start: 4px solid var(--sdb-portal-green) !important;
	border-radius: 9px !important;
	font-size: 13px;
	font-weight: 600;
	color: #245b48 !important;
	background: var(--sdb-portal-green-soft) !important;
}

.sdb-patient-portal .sdb-frontend-notice.sdb-is-error {
	color: #842a24 !important;
	background: var(--sdb-portal-red-soft) !important;
	border-color: #f0bbb6 !important;
	border-inline-start-color: var(--sdb-portal-red) !important;
}

.sdb-portal-appointments-section {
	scroll-margin-top: 20px;
}

.sdb-portal-section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 27px 0 13px;
}

.sdb-portal-section-heading .sdb-portal-eyebrow {
	margin-bottom: 2px;
}

.sdb-portal-count {
	display: grid;
	place-items: center;
	min-width: 30px;
	height: 30px;
	padding: 0 9px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 750;
	color: var(--sdb-portal-primary);
	background: var(--sdb-portal-primary-soft);
	border: 1px solid #c6d6f6;
}

.sdb-patient-portal .sdb-patient-appointments {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 16px !important;
	margin: 0 !important;
}

.sdb-patient-portal .sdb-patient-appointment-card {
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--sdb-portal-surface) !important;
	border: 1px solid var(--sdb-portal-border) !important;
	border-radius: 13px !important;
	box-shadow: var(--sdb-portal-shadow-soft) !important;
	overflow: hidden;
}

.sdb-patient-portal .sdb-patient-appointment-card::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 4px;
	background: var(--sdb-portal-primary);
}

.sdb-patient-portal .sdb-patient-appointment-card[data-appointment-status="confirmed"]::before {
	background: var(--sdb-portal-teal);
}

.sdb-patient-portal .sdb-patient-appointment-card[data-appointment-status="completed"]::before {
	background: var(--sdb-portal-green);
}

.sdb-patient-portal .sdb-patient-appointment-card[data-appointment-status="cancelled"]::before,
.sdb-patient-portal .sdb-patient-appointment-card[data-appointment-status="expired"]::before {
	background: var(--sdb-portal-red);
}

.sdb-patient-portal .sdb-patient-appointment-card > header {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	min-height: 63px;
	padding: 13px 18px 13px 21px !important;
	background: #fbfcff !important;
	border: 0 !important;
	border-bottom: 1px solid #e3e8f1 !important;
}

.sdb-patient-portal[dir="rtl"] .sdb-patient-appointment-card > header {
	padding: 13px 21px 13px 18px !important;
}

.sdb-appointment-reference {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.sdb-appointment-reference small {
	font-size: 10px;
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sdb-portal-muted);
}

.sdb-appointment-reference strong {
	font-size: 17px;
	font-weight: 760;
	line-height: 1.25;
	color: var(--sdb-portal-ink);
}

.sdb-appointment-status {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 26px;
	padding: 5px 10px !important;
	border-radius: 999px !important;
	font-size: 10px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--sdb-portal-primary) !important;
	background: var(--sdb-portal-primary-soft) !important;
	border: 1px solid #bed0f7 !important;
}

[data-appointment-status="confirmed"] .sdb-appointment-status,
[data-appointment-status="completed"] .sdb-appointment-status {
	color: #076357 !important;
	background: var(--sdb-portal-green-soft) !important;
	border-color: #a9ddcf !important;
}

[data-appointment-status="held"] .sdb-appointment-status,
[data-appointment-status="pending"] .sdb-appointment-status,
[data-appointment-status="payment_under_review"] .sdb-appointment-status {
	color: #7b5507 !important;
	background: var(--sdb-portal-amber-soft) !important;
	border-color: #eed38d !important;
}

[data-appointment-status="cancelled"] .sdb-appointment-status,
[data-appointment-status="expired"] .sdb-appointment-status {
	color: #8e2f28 !important;
	background: var(--sdb-portal-red-soft) !important;
	border-color: #efbbb6 !important;
}

.sdb-appointment-summary-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0;
	padding: 18px 18px 19px 21px;
}

.sdb-patient-portal[dir="rtl"] .sdb-appointment-summary-grid {
	padding: 18px 21px 19px 18px;
}

.sdb-appointment-summary-grid > div {
	min-width: 0;
	padding: 3px 14px;
	border-inline-end: 1px solid #e4e9f2;
}

.sdb-appointment-summary-grid > div:first-child {
	padding-inline-start: 0;
}

.sdb-appointment-summary-grid > div:last-child {
	padding-inline-end: 0;
	border-inline-end: 0;
}

.sdb-appointment-summary-grid span,
.sdb-patient-billing-grid span {
	display: block;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.055em;
	text-transform: uppercase;
	color: var(--sdb-portal-muted);
}

.sdb-appointment-summary-grid strong {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.45;
	word-break: break-word;
	color: var(--sdb-portal-ink);
}

.sdb-appointment-detail-panels {
	display: grid;
	gap: 12px;
	padding: 0 18px 19px 21px;
}

.sdb-patient-portal[dir="rtl"] .sdb-appointment-detail-panels {
	padding: 0 21px 19px 18px;
}

.sdb-patient-portal .sdb-patient-billing-panel,
.sdb-patient-portal .sdb-manual-payment-panel,
.sdb-patient-portal .sdb-patient-queue-panel,
.sdb-patient-portal .sdb-telemedicine-panel,
.sdb-patient-portal .sdb-patient-request-panel,
.sdb-patient-portal .sdb-patient-history {
	margin: 0 !important;
	padding: 14px 15px !important;
	background: #f8faff !important;
	border: 1px solid #dce4f1 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	color: var(--sdb-portal-ink) !important;
}

.sdb-patient-portal .sdb-manual-payment-panel {
	background: #fffaf0 !important;
	border-color: #ead6a3 !important;
}

.sdb-patient-portal .sdb-patient-queue-panel.sdb-is-checked-in,
.sdb-patient-portal .sdb-telemedicine-panel.sdb-is-open {
	background: #edf9f6 !important;
	border-color: #b7dfd5 !important;
}

.sdb-patient-portal .sdb-patient-request-panel.sdb-is-pending {
	background: var(--sdb-portal-amber-soft) !important;
	border-color: #ead18b !important;
}

.sdb-patient-portal .sdb-patient-billing-panel > strong,
.sdb-patient-portal .sdb-patient-queue-panel strong,
.sdb-patient-portal .sdb-telemedicine-panel > strong,
.sdb-patient-portal .sdb-patient-request-panel > strong,
.sdb-patient-portal .sdb-manual-payment-panel h3 {
	font-size: 13px !important;
	font-weight: 750 !important;
	line-height: 1.4 !important;
	color: var(--sdb-portal-ink) !important;
}

.sdb-patient-portal .sdb-manual-payment-panel h3 {
	margin: 0 0 5px !important;
}

.sdb-patient-portal .sdb-patient-billing-panel p,
.sdb-patient-portal .sdb-manual-payment-panel p,
.sdb-patient-portal .sdb-patient-queue-panel p,
.sdb-patient-portal .sdb-telemedicine-panel p,
.sdb-patient-portal .sdb-patient-request-panel p,
.sdb-patient-portal .sdb-patient-history p {
	margin: 4px 0 0 !important;
	font-size: 12px;
	line-height: 1.55;
	color: var(--sdb-portal-muted) !important;
}

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

.sdb-patient-portal .sdb-patient-billing-grid span {
	padding: 9px 10px;
	border-radius: 7px;
	color: #445268;
	background: #fff;
	border: 1px solid #e0e6ef;
	text-transform: none;
	letter-spacing: 0;
}

.sdb-patient-portal .sdb-confirmation-pdf-actions,
.sdb-patient-portal .sdb-manual-payment-methods {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.sdb-patient-portal .sdb-manual-payment-method {
	padding: 10px 12px !important;
	background: #fff !important;
	border: 1px solid #e0cfaa !important;
	border-radius: 8px !important;
}

.sdb-patient-portal .sdb-patient-request-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px !important;
	margin-top: 11px !important;
}

.sdb-patient-portal .sdb-patient-request-form,
.sdb-patient-portal .sdb-manual-payment-proof-form {
	padding: 13px !important;
	background: #fff !important;
	border: 1px solid #e0e6ef !important;
	border-radius: 9px !important;
}

.sdb-patient-portal label,
.sdb-patient-portal .sdb-field {
	display: block;
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 650;
	color: #344156;
}

.sdb-patient-portal label > span,
.sdb-patient-portal .sdb-field > span {
	display: block;
	margin-bottom: 5px;
}

.sdb-patient-portal input[type="text"],
.sdb-patient-portal input[type="date"],
.sdb-patient-portal input[type="file"],
.sdb-patient-portal select,
.sdb-patient-portal textarea {
	width: 100% !important;
	min-height: 40px;
	margin: 0 !important;
	padding: 9px 11px !important;
	border: 1px solid #bfcbdc !important;
	border-radius: 7px !important;
	font: inherit !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	color: var(--sdb-portal-ink) !important;
	background: #fff !important;
	box-shadow: none !important;
}

.sdb-patient-portal textarea {
	min-height: 72px;
	resize: vertical;
}

.sdb-patient-portal input:focus,
.sdb-patient-portal select:focus,
.sdb-patient-portal textarea:focus {
	outline: none !important;
	border-color: var(--sdb-portal-primary) !important;
	box-shadow: 0 0 0 3px rgba(0, 60, 144, 0.12) !important;
}

.sdb-patient-portal .sdb-reschedule-options {
	margin: 0 0 10px;
	padding: 10px;
	border-radius: 7px;
	background: #f5f7fb;
	border: 1px dashed #c6d0df;
}

.sdb-patient-portal .sdb-reschedule-options p {
	margin: 0 !important;
}

.sdb-patient-portal .sdb-patient-history summary {
	font-size: 12px;
	font-weight: 700;
	color: var(--sdb-portal-primary);
	cursor: pointer;
}

.sdb-patient-portal .sdb-patient-history ol {
	margin: 10px 0 0 18px;
	padding: 0;
}

.sdb-patient-portal .sdb-patient-history li {
	margin: 0 0 7px;
	font-size: 12px;
	color: var(--sdb-portal-muted);
}

.sdb-patient-portal .sdb-dashboard-empty {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 18px;
	min-height: 210px;
	margin: 0 !important;
	padding: 30px !important;
	background: #fff !important;
	border: 1px solid var(--sdb-portal-border) !important;
	border-radius: 13px !important;
	box-shadow: var(--sdb-portal-shadow-soft) !important;
}

.sdb-dashboard-empty-icon {
	display: grid !important;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	color: var(--sdb-portal-primary);
	background: var(--sdb-portal-primary-soft);
}

.sdb-dashboard-empty-icon svg {
	width: 32px;
	height: 32px;
}

.sdb-patient-portal .sdb-dashboard-empty strong {
	font-size: 20px;
	font-weight: 750;
	color: var(--sdb-portal-ink);
}

.sdb-patient-portal .sdb-dashboard-empty p {
	max-width: 620px;
	margin: 7px 0 15px !important;
	font-size: 13px;
	line-height: 1.6;
	color: var(--sdb-portal-muted) !important;
}

.sdb-portal-mobile-header {
	display: none;
}

/* Secure access screen */
.sdb-patient-portal.sdb-portal-access {
	max-width: 980px !important;
	min-height: 610px;
	background:
		radial-gradient(circle at 18% 15%, rgba(163, 192, 255, 0.34), transparent 34%),
		radial-gradient(circle at 88% 78%, rgba(115, 222, 217, 0.18), transparent 32%),
		var(--sdb-portal-page) !important;
}

.sdb-portal-access-shell {
	display: flex;
	min-height: 610px;
	padding: 38px 22px 24px;
	flex-direction: column;
	align-items: center;
}

.sdb-portal-access-brand {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-bottom: 36px;
}

.sdb-portal-access-brand > span:last-child {
	display: flex;
	flex-direction: column;
}

.sdb-portal-access-brand strong {
	font-size: 16px;
	font-weight: 760;
	color: var(--sdb-portal-primary);
}

.sdb-portal-access-brand small {
	font-size: 11px;
	color: var(--sdb-portal-muted);
}

.sdb-portal-access-card {
	width: min(100%, 520px);
	padding: 32px;
	text-align: center;
	background: #fff;
	border: 1px solid var(--sdb-portal-border);
	border-radius: 16px;
	box-shadow: 0 18px 44px rgba(28, 49, 83, 0.11);
}

.sdb-portal-access-icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin: 0 auto 16px;
	border-radius: 50%;
	color: var(--sdb-portal-primary);
	background: var(--sdb-portal-primary-soft);
}

.sdb-portal-access-icon svg {
	width: 27px;
	height: 27px;
}

.sdb-portal-access-card .sdb-portal-eyebrow {
	margin-bottom: 6px;
}

.sdb-portal-access-card h2 {
	font-size: 28px !important;
	font-weight: 760 !important;
	line-height: 1.2 !important;
}

.sdb-portal-access-card > p {
	margin: 10px 0 20px !important;
	font-size: 13px;
	line-height: 1.6;
	color: var(--sdb-portal-muted) !important;
}

.sdb-patient-portal .sdb-dashboard-access-form {
	display: grid !important;
	gap: 11px;
	margin: 0 !important;
	text-align: start;
}

.sdb-patient-portal .sdb-dashboard-access-form .sdb-field {
	margin: 0;
}

.sdb-patient-portal .sdb-dashboard-access-form .sdb-button {
	width: 100%;
	min-height: 44px;
}

.sdb-portal-login-link {
	margin: 16px 0 0 !important;
	font-size: 12px !important;
}

.sdb-portal-login-link a {
	font-weight: 650;
	color: var(--sdb-portal-primary) !important;
}

.sdb-portal-access-footnote {
	max-width: 560px;
	margin: 20px auto 0 !important;
	text-align: center;
	font-size: 11px;
	color: var(--sdb-portal-muted) !important;
}

@media (max-width: 1040px) {
	.sdb-portal-layout {
		grid-template-columns: 205px minmax(0, 1fr);
	}

	.sdb-portal-main {
		padding: 30px 28px 42px;
	}

	.sdb-appointment-summary-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: 14px;
	}

	.sdb-appointment-summary-grid > div:nth-child(3) {
		border-inline-end: 0;
	}

	.sdb-appointment-summary-grid > div:nth-child(n+4) {
		padding-top: 13px;
		border-top: 1px solid #e4e9f2;
	}
}

@media (max-width: 840px) {
	.sdb-patient-portal {
		width: min(100% - 24px, 760px) !important;
		margin: 20px auto !important;
		border-radius: 16px !important;
	}

	.sdb-portal-mobile-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		min-height: 68px;
		padding: 11px 18px;
		background: #fff;
		border-bottom: 1px solid var(--sdb-portal-border);
	}

	.sdb-portal-mobile-header .sdb-portal-brand-mark {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
		border-radius: 10px;
	}

	.sdb-portal-mobile-header .sdb-portal-brand-mark svg {
		width: 20px;
		height: 20px;
	}

	.sdb-portal-mobile-book {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 36px;
		padding: 8px 14px;
		border-radius: 8px;
		font-size: 12px;
		font-weight: 700;
		color: #fff !important;
		background: var(--sdb-portal-primary);
	}

	.sdb-portal-layout {
		display: block;
		min-height: 0;
	}

	.sdb-portal-sidebar {
		position: relative;
		display: block;
		padding: 10px 14px;
		border: 0;
		border-bottom: 1px solid var(--sdb-portal-border);
		overflow-x: auto;
		scrollbar-width: thin;
	}

	.sdb-patient-portal .sdb-portal-sidebar > .sdb-portal-brand,
	.sdb-patient-portal .sdb-portal-sidebar > .sdb-portal-book-button {
		display: none !important;
	}

	.sdb-portal-nav {
		display: flex;
		width: max-content;
		min-width: 100%;
		flex-direction: row;
		gap: 7px;
	}

	.sdb-portal-nav a {
		min-height: 38px;
		padding: 8px 11px;
		white-space: nowrap;
	}

	.sdb-portal-nav a.is-active,
	.sdb-patient-portal[dir="rtl"] .sdb-portal-nav a.is-active {
		box-shadow: inset 0 -3px 0 var(--sdb-portal-primary);
	}

	.sdb-portal-nav a:hover,
	.sdb-portal-nav a:focus-visible,
	.sdb-patient-portal[dir="rtl"] .sdb-portal-nav a:hover,
	.sdb-patient-portal[dir="rtl"] .sdb-portal-nav a:focus-visible {
		transform: none;
	}

	.sdb-portal-main {
		padding: 28px 24px 38px;
	}

	.sdb-portal-top-book {
		display: none !important;
	}

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

	.sdb-portal-summary-card {
		min-height: 78px;
		padding: 14px;
	}

	.sdb-portal-summary-icon {
		flex-basis: 36px;
		width: 36px;
		height: 36px;
	}

	.sdb-portal-summary-card strong {
		font-size: 21px;
	}

	.sdb-patient-portal .sdb-dashboard-security-note {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.sdb-patient-portal .sdb-dashboard-revoke-form {
		grid-column: 2;
	}

	.sdb-patient-portal .sdb-dashboard-revoke-form .sdb-button {
		white-space: normal;
	}

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

	.sdb-appointment-summary-grid > div,
	.sdb-appointment-summary-grid > div:nth-child(3) {
		padding: 10px 12px;
		border-top: 0;
		border-inline-end: 0;
		border-bottom: 1px solid #e4e9f2;
	}

	.sdb-appointment-summary-grid > div:nth-child(odd) {
		padding-inline-start: 0;
		border-inline-end: 1px solid #e4e9f2;
	}

	.sdb-appointment-summary-grid > div:nth-child(even) {
		padding-inline-end: 0;
	}

	.sdb-appointment-summary-grid > div:nth-last-child(-n+2) {
		border-bottom: 0;
	}
}

@media (max-width: 620px) {
	.sdb-patient-portal {
		width: calc(100% - 16px) !important;
		margin: 8px auto 20px !important;
		border-radius: 14px !important;
	}

	.sdb-portal-mobile-header {
		padding: 10px 13px;
	}

	.sdb-portal-brand small {
		display: none;
	}

	.sdb-portal-sidebar {
		padding-inline: 10px;
	}

	.sdb-portal-nav a {
		font-size: 12px;
	}

	.sdb-portal-main {
		padding: 23px 15px 30px;
	}

	.sdb-portal-topbar {
		margin-bottom: 18px;
	}

	.sdb-portal-main h2 {
		font-size: 27px !important;
	}

	.sdb-portal-topbar p {
		font-size: 13px;
	}

	.sdb-portal-summary {
		grid-template-columns: 1fr;
		gap: 9px;
	}

	.sdb-portal-summary-card {
		min-height: 68px;
	}

	.sdb-patient-portal .sdb-dashboard-security-note {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: flex-start;
		padding: 14px !important;
	}

	.sdb-patient-portal .sdb-dashboard-revoke-form {
		grid-column: 1 / -1;
		width: 100%;
	}

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

	.sdb-patient-portal .sdb-patient-appointment-card > header {
		align-items: flex-start;
		padding: 13px 14px 13px 18px !important;
	}

	.sdb-patient-portal[dir="rtl"] .sdb-patient-appointment-card > header {
		padding: 13px 18px 13px 14px !important;
	}

	.sdb-appointment-status {
		max-width: 52%;
		text-align: center;
	}

	.sdb-appointment-summary-grid {
		grid-template-columns: 1fr;
		padding: 12px 14px 14px 18px;
	}

	.sdb-patient-portal[dir="rtl"] .sdb-appointment-summary-grid {
		padding: 12px 18px 14px 14px;
	}

	.sdb-appointment-summary-grid > div,
	.sdb-appointment-summary-grid > div:nth-child(odd),
	.sdb-appointment-summary-grid > div:nth-child(even),
	.sdb-appointment-summary-grid > div:nth-child(3),
	.sdb-appointment-summary-grid > div:nth-last-child(-n+2) {
		padding: 9px 0;
		border-inline-end: 0;
		border-bottom: 1px solid #e4e9f2;
	}

	.sdb-appointment-summary-grid > div:last-child {
		border-bottom: 0;
	}

	.sdb-appointment-detail-panels {
		padding: 0 14px 15px 18px;
	}

	.sdb-patient-portal[dir="rtl"] .sdb-appointment-detail-panels {
		padding: 0 18px 15px 14px;
	}

	.sdb-patient-portal .sdb-patient-request-grid,
	.sdb-patient-portal .sdb-patient-billing-grid {
		grid-template-columns: 1fr;
	}

	.sdb-patient-portal .sdb-confirmation-pdf-actions,
	.sdb-patient-portal .sdb-manual-payment-methods {
		flex-direction: column;
	}

	.sdb-patient-portal .sdb-confirmation-pdf-actions .sdb-button,
	.sdb-patient-portal .sdb-manual-payment-methods .sdb-button,
	.sdb-patient-portal .sdb-patient-request-form .sdb-button,
	.sdb-patient-portal .sdb-patient-checkin-form .sdb-button,
	.sdb-patient-portal .sdb-manual-payment-proof-form .sdb-button {
		width: 100%;
	}

	.sdb-patient-portal .sdb-dashboard-empty {
		grid-template-columns: 1fr;
		justify-items: center;
		padding: 28px 20px !important;
		text-align: center;
	}

	.sdb-portal-access-shell {
		min-height: 570px;
		padding: 26px 12px 20px;
	}

	.sdb-portal-access-brand {
		margin-bottom: 24px;
	}

	.sdb-portal-access-card {
		padding: 25px 18px;
		border-radius: 13px;
	}

	.sdb-portal-access-card h2 {
		font-size: 24px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sdb-patient-portal *,
	.sdb-patient-portal *::before,
	.sdb-patient-portal *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Patient account and verified passwordless access (v1.8.0). */
.sdb-patient-portal .sdb-account-panel {
	display: grid;
	gap: 16px;
	margin: 0 0 22px;
	padding: 22px;
	background: linear-gradient(145deg, #fff 0%, #f5f8ff 100%);
	border: 1px solid #cbd8ed;
	border-radius: 14px;
	box-shadow: var(--sdb-portal-shadow-soft);
	scroll-margin-top: 20px;
}

.sdb-patient-portal .sdb-account-panel-heading {
	display: flex;
	align-items: center;
	gap: 13px;
}

.sdb-patient-portal .sdb-account-panel-heading h3 {
	font-size: 19px !important;
}

.sdb-patient-portal .sdb-account-icon {
	display: grid;
	place-items: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	color: var(--sdb-portal-primary);
	background: var(--sdb-portal-primary-soft);
	border: 1px solid #c5d6fb;
	border-radius: 12px;
}

.sdb-patient-portal .sdb-account-icon svg {
	width: 22px;
	height: 22px;
}

.sdb-patient-portal .sdb-account-panel > p {
	margin: -5px 0 0 !important;
	font-size: 13px;
	color: var(--sdb-portal-muted) !important;
}

.sdb-patient-portal .sdb-account-grid,
.sdb-patient-portal .sdb-passwordless-access {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px;
}

.sdb-patient-portal .sdb-account-profile-form,
.sdb-patient-portal .sdb-passwordless-access form,
.sdb-patient-portal .sdb-mobile-otp-block {
	margin: 0;
}

.sdb-patient-portal .sdb-passwordless-access form,
.sdb-patient-portal .sdb-mobile-otp-block {
	padding: 15px;
	background: #fff;
	border: 1px solid #dce4f1;
	border-radius: 11px;
}

.sdb-patient-portal .sdb-mobile-otp-block {
	display: grid;
	gap: 12px;
}

.sdb-patient-portal .sdb-mobile-otp-block form {
	padding: 0;
	border: 0;
}

.sdb-patient-portal .sdb-passwordless-access .sdb-button,
.sdb-patient-portal .sdb-account-profile-form > .sdb-button {
	width: 100%;
}

.sdb-patient-portal .sdb-account-signout {
	display: inline-block;
	margin-top: 12px;
	font-size: 12px;
	font-weight: 700;
	color: var(--sdb-portal-red) !important;
}

.sdb-patient-portal input[type="email"],
.sdb-patient-portal input[type="tel"] {
	width: 100% !important;
	min-height: 40px;
	margin: 0 !important;
	padding: 9px 11px !important;
	border: 1px solid #bfcbdc !important;
	border-radius: 7px !important;
	font: inherit !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	color: var(--sdb-portal-ink) !important;
	background: #fff !important;
	box-shadow: none !important;
}

.sdb-patient-portal input[readonly] {
	color: #556276 !important;
	background: #f1f4f9 !important;
}

.sdb-patient-portal input:focus {
	outline: 3px solid rgba(0, 60, 144, .12) !important;
	border-color: var(--sdb-portal-primary) !important;
}

.sdb-portal-access-card {
	width: min(100%, 720px);
}

.sdb-patient-portal .sdb-access-method-section {
	margin: 20px 0 0;
	padding: 18px;
	text-align: start;
	background: #f6f9ff;
	border: 1px solid #d8e2f2;
	border-radius: 12px;
}

.sdb-patient-portal .sdb-access-method-section h3 {
	margin-bottom: 13px !important;
	font-size: 16px !important;
}

.sdb-patient-portal .sdb-access-divider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 19px 0;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--sdb-portal-muted);
}

.sdb-patient-portal .sdb-access-divider::before,
.sdb-patient-portal .sdb-access-divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--sdb-portal-border);
}

.sdb-patient-portal .sdb-honeypot {
	position: absolute !important;
	inset-inline-start: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
}

@media (max-width: 760px) {
	.sdb-patient-portal .sdb-account-grid,
	.sdb-patient-portal .sdb-passwordless-access {
		grid-template-columns: 1fr;
	}

	.sdb-patient-portal .sdb-account-panel {
		padding: 17px;
	}

	.sdb-patient-portal .sdb-access-method-section {
		padding: 13px;
	}
}

.sdb-patient-portal .sdb-account-claim-existing {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid #d7dfed;
}

.sdb-patient-portal .sdb-account-claim-existing h4 {
	margin: 0 0 5px !important;
	font-size: 15px !important;
	color: var(--sdb-portal-ink) !important;
}

.sdb-patient-portal .sdb-account-claim-existing > p {
	margin: 0 0 12px !important;
	font-size: 12px;
	color: var(--sdb-portal-muted) !important;
}

/* 1.8.2 compact appointment master/detail list. */
.sdb-patient-portal .sdb-appointment-master-list {
	gap: 12px !important;
}

.sdb-patient-portal details.sdb-appointment-list-item {
	position: relative;
}

.sdb-patient-portal details.sdb-appointment-list-item > summary {
	list-style: none;
}

.sdb-patient-portal details.sdb-appointment-list-item > summary::-webkit-details-marker {
	display: none;
}

.sdb-appointment-list-summary {
	display: grid;
	grid-template-columns: minmax(180px, 1.35fr) minmax(150px, .95fr) minmax(160px, 1.1fr) minmax(120px, .72fr);
	align-items: center;
	gap: 16px;
	min-height: 88px;
	padding: 16px 20px 16px 24px;
	background: #fff;
	cursor: pointer;
	transition: background .18s ease, box-shadow .18s ease;
}

.sdb-patient-portal[dir="rtl"] .sdb-appointment-list-summary {
	padding: 16px 24px 16px 20px;
}

.sdb-appointment-list-summary:hover,
.sdb-appointment-list-summary:focus-visible {
	background: #f8fbff;
	outline: none;
	box-shadow: inset 0 0 0 2px rgba(37, 99, 235, .12);
}

.sdb-appointment-list-summary > span {
	min-width: 0;
}

.sdb-appointment-list-summary small,
.sdb-appointment-identity-grid span {
	display: block;
	margin-bottom: 4px;
	font-size: 10px;
	font-weight: 750;
	line-height: 1.3;
	letter-spacing: .055em;
	text-transform: uppercase;
	color: var(--sdb-portal-muted);
}

.sdb-appointment-list-summary strong,
.sdb-appointment-identity-grid strong {
	display: block;
	font-size: 13px;
	font-weight: 760;
	line-height: 1.4;
	word-break: break-word;
	color: var(--sdb-portal-ink);
}

.sdb-appointment-list-summary em {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-style: normal;
	line-height: 1.35;
	color: var(--sdb-portal-muted);
}

.sdb-appointment-list-state {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 9px;
}

.sdb-patient-portal[dir="rtl"] .sdb-appointment-list-state {
	align-items: flex-start;
}

.sdb-appointment-view-label {
	position: relative;
	padding-inline-end: 18px;
	font-weight: 700;
	color: var(--sdb-portal-primary) !important;
}

.sdb-appointment-view-label::after {
	content: "";
	position: absolute;
	inset-inline-end: 2px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	transition: transform .18s ease;
}

.sdb-appointment-list-item[open] .sdb-appointment-view-label::after {
	transform: translateY(-30%) rotate(225deg);
}

.sdb-appointment-list-item[open] .sdb-appointment-list-summary {
	background: #f8fbff;
	border-bottom: 1px solid #e1e8f2;
}

.sdb-appointment-list-details {
	padding: 18px 20px 20px 24px;
	background: #fff;
}

.sdb-patient-portal[dir="rtl"] .sdb-appointment-list-details {
	padding: 18px 24px 20px 20px;
}

.sdb-appointment-identity-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin-bottom: 14px;
	overflow: hidden;
	border: 1px solid #dce4f1;
	border-radius: 10px;
	background: #dce4f1;
}

.sdb-appointment-identity-grid > div {
	min-width: 0;
	padding: 12px 14px;
	background: #f8faff;
}

.sdb-appointment-list-details .sdb-appointment-detail-panels {
	padding: 0 !important;
}

.sdb-patient-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 20px;
}

.sdb-patient-pagination > span {
	color: #64748b;
	font-size: 14px;
	font-weight: 600;
}

.sdb-account-channel-note {
	margin-bottom: 12px;
	padding: 12px 14px;
	border: 1px solid #c9d9f4;
	border-radius: 10px;
	background: #f4f8ff;
}

.sdb-account-channel-note strong {
	display: block;
	margin-bottom: 3px;
	color: var(--sdb-portal-ink);
}

.sdb-account-channel-note p,
.sdb-passwordless-access .sdb-frontend-notice p {
	margin: 0;
}

.sdb-email-access-block,
.sdb-mobile-otp-block {
	display: grid;
	gap: 12px;
}

.sdb-email-access-block + .sdb-mobile-otp-block {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #dce4f1;
}

@media (max-width: 860px) {
	.sdb-appointment-list-summary {
		grid-template-columns: minmax(0, 1.4fr) minmax(135px, .9fr) minmax(110px, .7fr);
	}
	.sdb-appointment-list-service {
		display: none;
	}
	.sdb-appointment-identity-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.sdb-appointment-list-summary {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 12px;
		padding: 14px 15px 14px 19px;
	}
	.sdb-appointment-list-date {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 8px;
		align-items: baseline;
	}
	.sdb-appointment-list-date small {
		grid-column: 1 / -1;
	}
	.sdb-appointment-list-date em {
		margin: 0;
	}
	.sdb-appointment-list-state {
		grid-column: 2;
		grid-row: 1;
	}
	.sdb-appointment-view-label {
		font-size: 0 !important;
		width: 18px;
		height: 18px;
		padding: 0;
	}
	.sdb-appointment-view-label::after {
		inset-inline-end: 4px;
	}
	.sdb-appointment-list-details {
		padding: 14px 14px 16px 18px;
	}
	.sdb-appointment-identity-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 1.8.3 verification-first patient portal gate. */
.sdb-verification-first-gate .sdb-portal-access-card {
	width: min(100%, 900px);
	max-width: 900px;
}

.sdb-portal-staff-block .sdb-portal-access-card {
	width: min(100%, 720px);
	max-width: 720px;
}

.sdb-verification-first-gate .sdb-access-method-section {
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--sdb-border, #dbe4f0);
}

.sdb-verification-first-gate .sdb-passwordless-access.is-compact,
.sdb-portal-staff-block .sdb-result-actions {
	width: 100%;
}

.sdb-verification-first-gate .sdb-passwordless-access.is-compact {
	grid-template-columns: minmax(0, 1fr);
}

.sdb-verification-first-gate .sdb-frontend-notice.sdb-is-info {
	margin: 18px 0 4px;
}

.sdb-verification-first-gate .sdb-frontend-notice.sdb-is-info p,
.sdb-portal-staff-block .sdb-frontend-notice + p {
	margin-bottom: 0;
}

.sdb-portal-staff-block .sdb-result-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

.sdb-portal-staff-block .sdb-result-actions .sdb-button {
	margin: 0;
}

@media (max-width: 640px) {
	.sdb-portal-staff-block .sdb-result-actions {
		flex-direction: column;
	}

	.sdb-portal-staff-block .sdb-result-actions .sdb-button {
		width: 100%;
		justify-content: center;
	}
}

.sdb-verification-first-gate .sdb-email-access-block,
.sdb-verification-first-gate .sdb-mobile-otp-block {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
}

.sdb-verification-first-gate .sdb-email-access-block > form,
.sdb-verification-first-gate .sdb-mobile-otp-block > form {
	width: 100%;
	max-width: none;
	margin: 0;
}

.sdb-verification-first-gate .sdb-account-channel-note,
.sdb-verification-first-gate .sdb-frontend-notice {
	grid-column: 1 / -1;
}

@media (max-width: 700px) {
	.sdb-verification-first-gate .sdb-email-access-block,
	.sdb-verification-first-gate .sdb-mobile-otp-block {
		grid-template-columns: 1fr;
	}
}

/* Phase 5: explicit, user-initiated guest credential choice. */
.sdb-guest-access-choice .sdb-guest-access-intro {
	margin: 0 0 16px;
	font-weight: 600;
}
.sdb-guest-access-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 16px 0;
}
.sdb-guest-access-actions form,
.sdb-guest-access-actions .sdb-button {
	width: 100%;
	margin: 0;
}
@media (max-width: 640px) {
	.sdb-guest-access-actions {
		grid-template-columns: 1fr;
	}
}
