.sgp-hcp,
.sgp-hcp-layer-root,
.sgp-hcp-access-message {
	--h-primary: #a71c33;
	--h-primary-dark: #480e15;
	--h-rose-50: #fff5f7;
	--h-rose-100: #fde8eb;
	--h-powder: #fbf0f2;
	--h-cream: #fff8f4;
	--h-success: #3f8f68;
	--h-success-soft: #e8f6ef;
	--h-warning: #b9792c;
	--h-warning-soft: #fff2df;
	--h-error: #a71c33;
	--h-error-soft: #fde8eb;
	--h-white: #ffffff;
	--h-border: #eadde1;
	--h-text: #2c1a1d;
	--h-text-soft: #6b5b60;
	--sgp-h-cal-font-heading: inherit;
	--sgp-h-cal-font-body: inherit;
	--sgp-h-cal-font-button: inherit;
	--sgp-h-cal-font-heading-size: inherit;
	--sgp-h-cal-font-body-size: inherit;
	--sgp-h-cal-font-button-size: inherit;
	--sgp-h-cal-font-heading-weight: inherit;
	--sgp-h-cal-font-body-weight: inherit;
	--sgp-h-cal-font-button-weight: inherit;
	color: var(--h-text);
	font-family: var(--sgp-h-cal-font-body);
	font-size: var(--sgp-h-cal-font-body-size);
	font-weight: var(--sgp-h-cal-font-body-weight);
}

.sgp-hcp {
	position: relative;
	display: grid;
	gap: 18px;
	max-width: 1280px;
	margin: 0 auto;
}

.sgp-hcp.sgp-hcp--subscriptions-active {
	width: min(1680px, calc(100vw - 32px));
	max-width: none;
}

.sgp-hcp *,
.sgp-hcp-layer-root *,
.sgp-hcp-access-message {
	box-sizing: border-box;
}

.sgp-hcp-access-message,
.sgp-hcp-header,
.sgp-hcp-panel,
.sgp-hcp-tabs,
.sgp-hcp-toolbar,
.sgp-hcp-empty,
.sgp-hcp-drawer,
.sgp-hcp-modal__dialog {
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 22px;
	box-shadow: 0 14px 34px rgba(44, 26, 29, 0.07);
}

.sgp-hcp-access-message {
	max-width: 760px;
	margin: 0 auto;
	padding: 22px;
	color: var(--h-primary-dark);
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-50));
	font-weight: 800;
	display: grid;
	gap: 8px;
}

.sgp-hcp-header {
	display: grid;
	gap: 18px;
	padding: 24px;
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-50));
}

.sgp-hcp-kicker {
	margin: 0 0 8px;
	color: var(--h-primary);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sgp-hcp-header h2,
.sgp-hcp-section-heading h3,
.sgp-hcp-modal h3,
.sgp-hcp-detail h3 {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	line-height: 1.16;
}

.sgp-hcp-header h2 {
	font-size: clamp(30px, 6vw, 44px);
}

.sgp-hcp-header p:not(.sgp-hcp-kicker),
.sgp-hcp-section-heading p {
	margin: 10px 0 0;
	color: var(--h-text-soft);
	font-size: 15px;
	line-height: 1.6;
}

.sgp-hcp-header__actions,
.sgp-hcp-inline-actions,
.sgp-hcp-detail__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sgp-hcp-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px;
	overflow-x: visible;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid var(--h-border);
	border-radius: 20px;
	box-shadow: 0 12px 28px rgba(44, 26, 29, 0.06);
}

.sgp-hcp-tabs button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 1 auto;
	min-height: 44px;
	padding: 11px 16px;
	color: var(--h-primary-dark);
	background: var(--h-rose-50);
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 999px;
	box-shadow: 0 6px 14px rgba(72, 14, 21, 0.04);
	cursor: pointer;
	font-family: var(--sgp-h-cal-font-button);
	font-size: 14px;
	font-weight: 900;
	line-height: 1.25;
	text-align: center;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
	white-space: normal;
}

.sgp-hcp-tabs button:hover,
.sgp-hcp-tabs button:focus {
	color: var(--h-primary-dark);
	background: var(--h-rose-100);
	border-color: rgba(167, 28, 51, 0.28);
	box-shadow: 0 0 0 3px rgba(167, 28, 51, 0.1);
	outline: none;
	transform: translateY(-1px);
}

.sgp-hcp-tabs button.is-active {
	color: var(--h-white);
	background: var(--h-primary);
	border-color: var(--h-primary);
	box-shadow: 0 10px 20px rgba(167, 28, 51, 0.18);
}

.sgp-hcp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 18px;
	color: var(--h-white);
	background: var(--h-primary);
	border: 1px solid var(--h-primary);
	border-radius: 30px;
	box-shadow: 0 10px 20px rgba(167, 28, 51, 0.18);
	cursor: pointer;
	font-family: var(--sgp-h-cal-font-button);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
}

.sgp-hcp-button:hover,
.sgp-hcp-button:focus,
.sgp-hcp-button.is-active {
	color: var(--h-white);
	background: var(--h-primary-dark);
	border-color: var(--h-primary-dark);
	transform: translateY(-1px);
}

.sgp-hcp-button--secondary {
	color: var(--h-primary);
	background: var(--h-white);
	border-color: rgba(167, 28, 51, 0.2);
	box-shadow: none;
}

.sgp-hcp-button--ghost {
	color: var(--h-text-soft);
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.sgp-hcp-button--danger {
	color: var(--h-error);
	background: var(--h-error-soft);
	border-color: rgba(167, 28, 51, 0.18);
	box-shadow: none;
}

.sgp-hcp-button--compact {
	min-height: 36px;
	padding: 8px 12px;
	font-size: 12px;
}

.sgp-hcp-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px;
	background: rgba(255, 255, 255, 0.82);
}

.sgp-hcp-planning-head {
	display: grid;
	gap: 14px;
	margin-bottom: 18px;
	padding: 18px;
	background: linear-gradient(135deg, rgba(255, 248, 244, 0.92), rgba(255, 245, 247, 0.78));
	border: 1px solid var(--h-border);
	border-radius: 22px;
}

.sgp-hcp-planning-head .sgp-hcp-section-heading {
	margin-bottom: 0;
}

.sgp-hcp-planning-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(167, 28, 51, 0.1);
	border-radius: 18px;
}

.sgp-hcp-planning-toolbar__group {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sgp-hcp-toolbar input,
.sgp-hcp input,
.sgp-hcp select,
.sgp-hcp textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 13px;
	color: var(--h-text);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	font-family: var(--sgp-h-cal-font-body);
	font-size: inherit;
}

.sgp-hcp-toolbar input {
	width: auto;
	min-width: 180px;
}

.sgp-hcp-feedback {
	padding: 14px 16px;
	color: var(--h-success);
	background: var(--h-success-soft);
	border: 1px solid rgba(63, 143, 104, 0.22);
	border-radius: 16px;
	font-weight: 800;
}

.sgp-hcp-feedback[data-type="error"] {
	color: var(--h-error);
	background: var(--h-error-soft);
}

.sgp-hcp-panel {
	padding: 22px;
}

.sgp-hcp-home {
	display: grid;
	gap: 18px;
}

.sgp-hcp-cockpit {
	background: linear-gradient(180deg, rgba(255, 248, 244, 0.78), rgba(255, 255, 255, 0.96));
}

.sgp-hcp-home-hero,
.sgp-hcp-home-card,
.sgp-hcp-kpi-card,
.sgp-hcp-today-card {
	background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 20px;
	box-shadow: 0 12px 26px rgba(44, 26, 29, 0.06);
}

.sgp-hcp-home-hero {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 20px;
}

.sgp-hcp-home-hero h3,
.sgp-hcp-home-card h3 {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	line-height: 1.18;
}

.sgp-hcp-home-hero h3 {
	font-size: clamp(26px, 5vw, 38px);
}

.sgp-hcp-home-hero p:not(.sgp-hcp-kicker),
.sgp-hcp-today-card p,
.sgp-hcp-today-card small {
	margin: 8px 0 0;
	color: var(--h-text-soft);
	font-weight: 800;
	line-height: 1.45;
}

.sgp-hcp-home-hero__actions,
.sgp-hcp-home-shortcuts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sgp-hcp-home-hero__actions {
	justify-content: flex-end;
}

.sgp-hcp-kpi-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 12px;
}

.sgp-hcp-kpi-card {
	display: grid;
	gap: 8px;
	padding: 16px;
}

.sgp-hcp-kpi-card span {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-kpi-card strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: clamp(22px, 4vw, 30px);
	line-height: 1.1;
	overflow-wrap: anywhere;
}

.sgp-hcp-home-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.sgp-hcp-home-card {
	display: grid;
	align-content: start;
	gap: 14px;
	padding: 18px;
}

.sgp-hcp-home-card--primary {
	border-color: rgba(167, 28, 51, 0.22);
	background: linear-gradient(135deg, var(--h-white), var(--h-cream));
}

.sgp-hcp-home-card .sgp-hcp-section-heading {
	margin-bottom: 0;
}

.sgp-hcp-home-dl {
	display: grid;
	gap: 8px;
	margin: 0;
}

.sgp-hcp-home-dl div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(234, 221, 225, 0.75);
}

.sgp-hcp-home-dl dt {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-home-dl dd {
	margin: 0;
	color: var(--h-primary-dark);
	font-weight: 800;
	text-align: right;
	overflow-wrap: anywhere;
}

.sgp-hcp-alert-list {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sgp-hcp-alert-list li {
	padding: 12px;
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
	border-radius: 14px;
	font-weight: 800;
}

.sgp-hcp-communication-list,
.sgp-hcp-treatment-list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sgp-hcp-communication-card,
.sgp-hcp-treatment-item,
.sgp-hcp-numbers-grid article,
.sgp-hcp-top-services {
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(234, 221, 225, 0.9);
	border-radius: 18px;
}

.sgp-hcp-communication-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	padding: 16px;
}

.sgp-hcp-communication-card.is-next {
	border-color: rgba(167, 28, 51, 0.32);
	box-shadow: 0 14px 28px rgba(72, 14, 21, 0.08);
}

.sgp-hcp-communication-card h4 {
	margin: 8px 0 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 24px;
	line-height: 1.15;
}

.sgp-hcp-communication-card p,
.sgp-hcp-communication-card small {
	display: block;
	margin: 7px 0 0;
	color: var(--h-text-soft);
	font-weight: 800;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.sgp-hcp-contact-actions,
.sgp-hcp-message-actions,
.sgp-hcp-treatment-actions,
.sgp-hcp-card-actions,
.sgp-hcp-card-signals,
.sgp-hcp-top-services {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sgp-hcp-message-chip,
.sgp-hcp-card-signals span,
.sgp-hcp-top-services span {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 8px 11px;
	color: var(--h-primary);
	background: var(--h-rose-50);
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	text-decoration: none;
}

.sgp-hcp-message-chip:hover,
.sgp-hcp-message-chip:focus {
	color: var(--h-white);
	background: var(--h-primary);
	outline: none;
}

.sgp-hcp-treatment-item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 12px;
}

.sgp-hcp-treatment-item p {
	margin: 0;
	color: var(--h-text);
	font-weight: 800;
	line-height: 1.45;
}

.sgp-hcp-treatment-badge,
.sgp-hcp-status-badge,
.sgp-hcp-payment-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 7px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	white-space: nowrap;
}

.sgp-hcp-treatment-badge {
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
}

.sgp-hcp-treatment-item--error .sgp-hcp-treatment-badge,
.sgp-hcp-status-badge--cancelled {
	color: var(--h-error);
	background: var(--h-error-soft);
	border: 1px solid rgba(167, 28, 51, 0.18);
}

.sgp-hcp-treatment-item--pending .sgp-hcp-treatment-badge {
	color: var(--h-primary);
	background: var(--h-rose-50);
	border: 1px solid rgba(167, 28, 51, 0.18);
}

.sgp-hcp-treatment-item--neutral .sgp-hcp-treatment-badge {
	color: var(--h-text-soft);
	background: var(--h-white);
	border: 1px solid var(--h-border);
}

.sgp-hcp-status-badge--confirmed {
	color: var(--h-success);
	background: var(--h-success-soft);
	border: 1px solid rgba(63, 143, 104, 0.22);
}

.sgp-hcp-status-badge--pending {
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
}

.sgp-hcp-status-badge--positive,
.sgp-hcp-status-badge--neutral-positive,
.sgp-hcp-payment-badge--positive {
	color: var(--h-success);
	background: var(--h-success-soft);
	border: 1px solid rgba(63, 143, 104, 0.22);
}

.sgp-hcp-status-badge--attention,
.sgp-hcp-payment-badge--attention {
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
}

.sgp-hcp-status-badge--negative,
.sgp-hcp-payment-badge--alert {
	color: var(--h-error);
	background: var(--h-error-soft);
	border: 1px solid rgba(167, 28, 51, 0.18);
}

.sgp-hcp-status-badge--muted,
.sgp-hcp-payment-badge--muted,
.sgp-hcp-payment-badge--unlinked {
	color: var(--h-text-soft);
	background: var(--h-white);
	border: 1px solid var(--h-border);
}

.sgp-hcp-numbers-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.sgp-hcp-numbers-grid article {
	display: grid;
	gap: 8px;
	padding: 16px;
}

.sgp-hcp-numbers-grid span,
.sgp-hcp-numbers-grid small {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-numbers-grid strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: clamp(24px, 4vw, 34px);
	line-height: 1.08;
	overflow-wrap: anywhere;
}

.sgp-hcp-top-services {
	align-items: center;
	padding: 12px;
}

.sgp-hcp-top-services strong {
	color: var(--h-primary-dark);
}

.sgp-hcp-top-services p {
	margin: 0;
	color: var(--h-text-soft);
	font-weight: 800;
}

.sgp-hcp-today-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.sgp-hcp-today-card {
	display: grid;
	gap: 12px;
	padding: 16px;
}

.sgp-hcp-today-card header,
.sgp-hcp-today-card footer {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
}

.sgp-hcp-today-card footer {
	align-items: center;
}

.sgp-hcp-today-card strong {
	color: var(--h-primary);
	font-size: 16px;
	font-weight: 900;
}

.sgp-hcp-today-card p:first-of-type {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 20px;
	line-height: 1.2;
}

.sgp-hcp-card-signals {
	align-items: center;
}

.sgp-hcp-business-lines {
	display: grid;
	gap: 4px;
	padding: 10px 12px;
	border: 1px solid rgba(167, 28, 51, 0.08);
	border-radius: 14px;
	background: rgba(255, 247, 248, 0.72);
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
}

.sgp-hcp-event__badges,
.sgp-hcp-detail-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sgp-hcp-event__badges {
	grid-column: 2 / -1;
	margin-top: 2px;
}

.sgp-hcp-detail-badges {
	margin: 0 0 14px;
}

.sgp-hcp-detail a {
	color: var(--h-primary);
	font-weight: 900;
	text-decoration: none;
}

.sgp-hcp-detail a:hover {
	text-decoration: underline;
}

.sgp-hcp-diagnostic {
	display: grid;
	gap: 8px;
	padding: 12px 14px;
	border: 1px solid rgba(185, 121, 44, 0.22);
	border-radius: 18px;
	background: rgba(255, 247, 238, 0.82);
	color: var(--h-warning);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.45;
}

.sgp-hcp-card-actions {
	flex-wrap: wrap;
}

.sgp-hcp-section-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
}

.sgp-hcp-section-heading h3 {
	font-size: clamp(23px, 4vw, 31px);
}

.sgp-hcp-mini-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.sgp-hcp-mini-stats span,
.sgp-hcp-week-chip {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 8px 11px;
	color: var(--h-primary);
	background: var(--h-rose-50);
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 800;
}

.sgp-hcp-day-list {
	display: grid;
	gap: 12px;
}

.sgp-hcp-event {
	display: grid;
	grid-template-columns: 118px 1fr;
	gap: 4px 14px;
	width: 100%;
	padding: 15px;
	color: var(--h-text);
	background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 18px;
	cursor: pointer;
	text-align: left;
	transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
}

.sgp-hcp-event:hover,
.sgp-hcp-event:focus {
	border-color: rgba(167, 28, 51, 0.42);
	box-shadow: 0 12px 28px rgba(72, 14, 21, 0.1);
	transform: translateY(-1px);
	outline: none;
}

.sgp-hcp-event.is-highlighted,
.sgp-hcp-week-chip.is-highlighted {
	border-color: var(--h-primary);
	box-shadow: 0 0 0 3px rgba(167, 28, 51, 0.14), 0 16px 32px rgba(72, 14, 21, 0.14);
}

.sgp-hcp-event__time {
	grid-row: span 2;
	color: var(--h-primary);
	font-weight: 900;
}

.sgp-hcp-event strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 16px;
}

.sgp-hcp-event small {
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 700;
}

.sgp-hcp-event--block,
.sgp-hcp-week-chip--block {
	background: var(--h-warning-soft);
	border-color: rgba(185, 121, 44, 0.24);
}

.sgp-hcp-event--closure,
.sgp-hcp-week-chip--closure {
	color: var(--h-error);
	background: var(--h-error-soft);
	border-color: rgba(167, 28, 51, 0.18);
}

.sgp-hcp-status-cancelled {
	opacity: 0.62;
}

.sgp-hcp-empty {
	padding: 18px;
	color: var(--h-text-soft);
	background: var(--h-powder);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.5;
}

.sgp-hcp-empty--warning {
	color: var(--h-warning);
	background: var(--h-warning-soft);
}

.sgp-hcp-week-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 12px;
}

.sgp-hcp-week-day {
	display: grid;
	align-content: start;
	gap: 10px;
	min-height: 170px;
	padding: 13px;
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 18px;
}

.sgp-hcp-week-day header {
	display: grid;
	gap: 5px;
}

.sgp-hcp-week-day header strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 15px;
	line-height: 1.3;
}

.sgp-hcp-week-day header span,
.sgp-hcp-week-day p {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 700;
}

.sgp-hcp-week-chip {
	width: 100%;
	justify-content: flex-start;
	border-radius: 12px;
	cursor: pointer;
	text-align: left;
	white-space: normal;
}

.sgp-hcp-client-search {
	display: grid;
	gap: 8px;
	margin-bottom: 16px;
	color: var(--h-text);
	font-size: 14px;
	font-weight: 900;
}

.sgp-hcp-clients-grid,
.sgp-hcp-quick-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.sgp-hcp-manager-client-card,
.sgp-hcp-client-access-options {
	display: grid;
	gap: 16px;
	border: 1px solid var(--h-border);
	border-radius: 20px;
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-50));
	padding: 18px;
}

.sgp-hcp-manager-client-card {
	margin-bottom: 18px;
}

.sgp-hcp-manager-client-card__heading {
	align-items: center;
	gap: 16px;
}

.sgp-hcp-manager-client-card__heading .sgp-hcp-button {
	flex: 0 0 auto;
	white-space: nowrap;
}

.sgp-hcp-manager-client-card__heading .sgp-hcp-button[aria-expanded="true"] {
	background: var(--h-primary-dark);
}

.sgp-hcp-manager-client-card__heading .sgp-hcp-button:focus-visible {
	outline: 3px solid rgba(167, 28, 51, 0.26);
	outline-offset: 3px;
}

.sgp-hcp-manager-client-panel[hidden] {
	display: none;
}

.sgp-hcp-manager-client-panel {
	display: block;
}

.sgp-hcp-manager-client-form {
	display: grid;
	gap: 16px;
	min-height: 0;
}

.sgp-hcp-manager-client-form__grid {
	align-items: start;
	row-gap: 14px;
}

.sgp-hcp-manager-client-form textarea[name="internal_note"] {
	display: block;
	height: 110px;
	min-height: 96px;
	max-height: 120px;
	resize: vertical;
}

.sgp-hcp-manager-client-form footer {
	display: flex;
	justify-content: flex-start;
	margin: 0;
}

.sgp-hcp-client-access-options {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	grid-template-columns: none;
	min-height: 0;
	height: auto;
	margin-top: 16px;
	background: var(--h-white);
}

.sgp-hcp-client-access-options legend {
	padding: 0 8px;
	color: var(--h-primary-dark);
	font-weight: 800;
}

.sgp-hcp-client-access-options label {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 10px;
	width: auto;
	max-width: 100%;
	min-height: 0;
	margin: 0;
	color: var(--h-primary-dark);
	font-weight: 700;
	line-height: 1.4;
	text-align: left;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
	writing-mode: horizontal-tb;
}

.sgp-hcp-client-access-options input[type="checkbox"] {
	flex: 0 0 18px;
	width: 18px;
	min-width: 18px;
	max-width: 18px;
	height: 18px;
	min-height: 18px;
	max-height: 18px;
	padding: 0;
	margin-top: 3px;
	accent-color: var(--h-primary);
}

.sgp-hcp-client-access-options label span {
	display: block;
	flex: 1 1 auto;
	width: auto;
	max-width: 100%;
	min-width: 0;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
	writing-mode: horizontal-tb;
}

.sgp-hcp-client-access-options p {
	width: auto;
	max-width: 100%;
	margin: 0;
	color: var(--h-text-soft);
	font-size: 14px;
	line-height: 1.5;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
	writing-mode: horizontal-tb;
}

.sgp-hcp-client-card,
.sgp-hcp-quick-card {
	display: grid;
	gap: 14px;
	padding: 18px;
	background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 20px;
	box-shadow: 0 12px 26px rgba(44, 26, 29, 0.06);
}

.sgp-hcp-client-card header,
.sgp-hcp-client-card footer {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.sgp-hcp-client-card footer {
	flex-wrap: wrap;
	align-items: center;
}

.sgp-hcp-client-card h4 {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 22px;
	line-height: 1.2;
}

.sgp-hcp-client-card dl {
	display: grid;
	gap: 8px;
	margin: 0;
}

.sgp-hcp-client-card dl div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(234, 221, 225, 0.75);
}

.sgp-hcp-client-card dt {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-client-card dd {
	margin: 0;
	color: var(--h-primary-dark);
	font-weight: 800;
	text-align: right;
	overflow-wrap: anywhere;
}

.sgp-hcp-badge {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 7px 10px;
	color: var(--h-primary);
	background: var(--h-white);
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	white-space: nowrap;
}

.sgp-hcp-quick-card {
	width: 100%;
	color: var(--h-text);
	cursor: pointer;
	font-family: var(--sgp-h-cal-font-button);
	font-size: inherit;
	text-align: left;
	transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
}

.sgp-hcp-quick-card:hover,
.sgp-hcp-quick-card:focus {
	border-color: rgba(167, 28, 51, 0.42);
	box-shadow: 0 14px 30px rgba(72, 14, 21, 0.1);
	transform: translateY(-1px);
	outline: none;
}

.sgp-hcp-quick-card strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 22px;
	line-height: 1.2;
}

.sgp-hcp-quick-card span {
	color: var(--h-text-soft);
	font-weight: 800;
}

.sgp-hcp-quick-card--soon,
.sgp-hcp-quick-card:disabled {
	cursor: not-allowed;
	opacity: 0.74;
}

.sgp-hcp-quick-card--soon:hover,
.sgp-hcp-quick-card--soon:focus,
.sgp-hcp-quick-card:disabled:hover,
.sgp-hcp-quick-card:disabled:focus {
	border-color: var(--h-border);
	box-shadow: 0 14px 34px rgba(44, 26, 29, 0.07);
	transform: none;
}

.sgp-hcp-prep-layout {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.sgp-hcp-prep-card {
	display: grid;
	gap: 10px;
	min-height: 180px;
	padding: 18px;
	background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 22px;
	box-shadow: 0 14px 34px rgba(44, 26, 29, 0.07);
}

.sgp-hcp-prep-card--primary {
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-100));
	border-color: rgba(167, 28, 51, 0.18);
}

.sgp-hcp-prep-card strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 22px;
	line-height: 1.18;
}

.sgp-hcp-prep-card p {
	margin: 0;
	color: var(--h-text-soft);
	font-weight: 800;
	line-height: 1.55;
}

.sgp-hcp-soon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	justify-self: start;
	min-height: 32px;
	padding: 7px 11px;
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-finance-summary {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 18px;
}

.sgp-hcp-finance-summary article {
	display: grid;
	gap: 8px;
	min-height: 118px;
	padding: 16px;
	background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 20px;
	box-shadow: 0 12px 26px rgba(44, 26, 29, 0.06);
}

.sgp-hcp-finance-summary span {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-finance-summary strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: clamp(24px, 4vw, 34px);
	line-height: 1.05;
}

.sgp-hcp-finance-table-card {
	padding: 18px;
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 22px;
	box-shadow: 0 14px 34px rgba(44, 26, 29, 0.07);
}

.sgp-hcp-finance-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 12px;
	margin: 0 0 18px;
	padding: 16px;
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 20px;
}

.sgp-hcp-finance-filters label {
	display: grid;
	gap: 7px;
	min-width: min(260px, 100%);
}

.sgp-hcp-finance-filters span {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-finance-filters .sgp-hcp-finance-source-badge {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 9px 14px;
	color: var(--h-primary);
	background: var(--h-white);
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 999px;
}

.sgp-hcp-finance-filters select {
	min-height: 46px;
	padding: 10px 13px;
	color: var(--h-text);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	font: inherit;
}

.sgp-hcp-manager-finance,
.sgp-hcp-finance-latest-grid {
	margin-bottom: 18px;
}

.sgp-hcp-finance-summary--manager {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-bottom: 0;
}

.sgp-hcp-finance-summary--home {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sgp-hcp-finance-summary article small {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 800;
}

.sgp-hcp-finance-latest-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.sgp-hcp-finance-latest-grid--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sgp-hcp-finance-card-list {
	display: grid;
	gap: 10px;
}

.sgp-hcp-finance-card-list article {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 6px 10px;
	padding: 14px;
	background: var(--h-rose-50);
	border: 1px solid rgba(167, 28, 51, 0.1);
	border-radius: 16px;
}

.sgp-hcp-finance-card-list p,
.sgp-hcp-finance-card-list small {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--h-text-soft);
}

.sgp-hcp-finance-card-list strong {
	color: var(--h-primary-dark);
}

.sgp-hcp-upcoming-card {
	margin-bottom: 18px;
}

.sgp-hcp-upcoming-list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sgp-hcp-upcoming-list article {
	min-width: 0;
}

.sgp-hcp-google-reviews-panel {
	display: grid;
	gap: 18px;
}

.sgp-hcp-google-reviews-form,
.sgp-hcp-google-reviews-notice {
	padding: 18px;
	background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
	border: 1px solid var(--h-border);
	border-radius: 22px;
	box-shadow: 0 12px 28px rgba(44, 26, 29, 0.06);
}

.sgp-hcp-google-reviews-notice {
	color: var(--h-primary-dark);
	font-weight: 800;
}

.sgp-hcp-google-reviews-notice--success {
	color: var(--h-success);
	background: var(--h-success-soft);
}

.sgp-hcp-google-reviews-notice--error {
	color: var(--h-error);
	background: var(--h-error-soft);
}

.sgp-hcp-google-reviews-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.sgp-hcp-google-reviews-grid label {
	display: grid;
	gap: 8px;
}

.sgp-hcp-google-reviews-grid span {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-google-reviews-grid input {
	min-height: 48px;
	padding: 11px 14px;
	color: var(--h-text);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	font: inherit;
}

.sgp-hcp-google-reviews-grid small,
.sgp-hcp-google-reviews-help {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 13px;
	line-height: 1.5;
}

.sgp-hcp-google-reviews-actions {
	margin-top: 16px;
}

.sgp-hcp-subscriptions-panel {
	width: 100%;
}

.sgp-hcp-subscriptions-panel .sgp-hcp-finance-summary {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sgp-hcp-subscription-tools {
	display: grid;
	grid-template-columns: minmax(280px, 1.2fr) minmax(260px, 0.8fr);
	align-items: end;
	gap: 14px;
	margin: 0 0 16px;
	max-width: 920px;
}

.sgp-hcp-subscription-tools label {
	display: grid;
	gap: 7px;
	min-width: 0;
}

.sgp-hcp-subscription-tools span {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-subscription-tools input,
.sgp-hcp-subscription-tools select {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 46px;
	padding: 10px 13px;
	color: var(--h-text);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	box-shadow: none;
	font: inherit;
}

.sgp-hcp-subscription-tools select {
	appearance: auto;
	-webkit-appearance: menulist;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sgp-hcp-table-scroll {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.sgp-hcp-finance-table {
	width: 100%;
	min-width: 980px;
	border-collapse: separate;
	border-spacing: 0;
}

.sgp-hcp-subscription-table {
	min-width: 1180px;
}

.sgp-hcp-finance-table th,
.sgp-hcp-finance-table td {
	padding: 13px 12px;
	border-bottom: 1px solid rgba(234, 221, 225, 0.82);
	text-align: left;
	vertical-align: top;
}

.sgp-hcp-finance-table th {
	color: var(--h-text-soft);
	background: var(--h-rose-50);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	white-space: nowrap;
}

.sgp-hcp-finance-table td {
	color: var(--h-primary-dark);
	font-size: 14px;
	font-weight: 800;
	overflow-wrap: anywhere;
}

.sgp-hcp-finance-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 900;
	white-space: nowrap;
}

.sgp-hcp-finance-badge--success {
	color: var(--h-success);
	background: var(--h-success-soft);
	border: 1px solid rgba(63, 143, 104, 0.22);
}

.sgp-hcp-finance-badge--danger {
	color: var(--h-error);
	background: var(--h-error-soft);
	border: 1px solid rgba(167, 28, 51, 0.18);
}

.sgp-hcp-finance-badge--warning {
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
}

.sgp-hcp-finance-badge--neutral {
	color: var(--h-text-soft);
	background: var(--h-white);
	border: 1px solid var(--h-border);
}

.sgp-hcp-muted {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.4;
}

.sgp-hcp-subscription-portal-box,
.sgp-hcp-subscription-billing-date-box,
.sgp-hcp-subscription-renewal-box {
	display: grid;
	gap: 10px;
	margin-top: 16px;
	padding: 14px;
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-50));
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 18px;
}

.sgp-hcp-subscription-renewal-box--deferred {
	border-style: dashed;
}

.sgp-hcp-subscription-portal-box h4,
.sgp-hcp-subscription-billing-date-box h4,
.sgp-hcp-subscription-renewal-box h4 {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 18px;
	line-height: 1.2;
}

.sgp-hcp-subscription-billing-date-box strong {
	color: var(--h-warning);
	font-size: 13px;
	font-weight: 900;
}

.sgp-hcp-subscription-portal-box p,
.sgp-hcp-subscription-billing-date-box p,
.sgp-hcp-subscription-renewal-box p {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.45;
}

.sgp-hcp-subscription-portal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sgp-hcp-subscription-billing-date-info {
	display: grid;
	gap: 8px;
	margin-top: 16px;
	padding: 14px;
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid rgba(92, 74, 58, 0.14);
	border-radius: 18px;
}

.sgp-hcp-subscription-billing-date-info h4 {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.25;
}

.sgp-hcp-subscription-billing-date-info p {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
}

.sgp-hcp-subscription-schedule-notice {
	display: grid;
	gap: 9px;
	margin-top: 16px;
	padding: 16px;
	background: linear-gradient(135deg, rgba(47, 91, 123, 0.08), rgba(255, 255, 255, 0.95));
	border: 1px solid rgba(47, 91, 123, 0.18);
	border-radius: 18px;
	box-shadow: 0 12px 28px rgba(44, 26, 29, 0.05);
}

.sgp-hcp-subscription-schedule-badge {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 5px 10px;
	color: #2f5b7b;
	font-size: 11px;
	font-weight: 900;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: rgba(47, 91, 123, 0.1);
	border: 1px solid rgba(47, 91, 123, 0.18);
	border-radius: 999px;
}

.sgp-hcp-subscription-schedule-title {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
}

.sgp-hcp-subscription-schedule-date,
.sgp-hcp-subscription-schedule-note {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
}

.sgp-hcp-subscription-schedule-date strong {
	color: #2f5b7b;
	font-weight: 900;
}

.sgp-hcp-subscription-schedule-details {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sgp-hcp-subscription-schedule-details span {
	display: inline-flex;
	padding: 5px 9px;
	color: var(--h-text);
	font-size: 12px;
	font-weight: 800;
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(47, 91, 123, 0.14);
	border-radius: 999px;
}

.sgp-hcp-billing-date-plan-card {
	display: grid;
	gap: 10px;
	margin-top: 16px;
	padding: 16px;
	background: linear-gradient(135deg, var(--h-white), var(--h-cream));
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 18px;
	box-shadow: 0 12px 28px rgba(44, 26, 29, 0.05);
}

.sgp-hcp-billing-date-plan-card h4 {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
}

.sgp-hcp-billing-date-plan-card p {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
}

.sgp-hcp-billing-date-plan-button {
	justify-self: start;
}

.sgp-hcp-billing-date-history {
	display: grid;
	gap: 12px;
	margin-top: 16px;
	padding: 16px;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(92, 74, 58, 0.14);
	border-radius: 18px;
	box-shadow: 0 12px 28px rgba(44, 26, 29, 0.04);
}

.sgp-hcp-billing-date-history-title {
	margin: 0;
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
}

.sgp-hcp-billing-date-history-list {
	display: grid;
	gap: 10px;
}

.sgp-hcp-billing-date-history-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: start;
	padding: 12px;
	background: var(--h-rose-50);
	border: 1px solid var(--h-border);
	border-radius: 14px;
}

.sgp-hcp-billing-date-history-meta {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.sgp-hcp-billing-date-history-meta strong {
	color: var(--h-primary-dark);
	font-size: 13px;
	font-weight: 900;
	line-height: 1.35;
}

.sgp-hcp-billing-date-history-meta span,
.sgp-hcp-billing-date-history-note {
	margin: 0;
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.45;
}

.sgp-hcp-billing-date-history-status {
	display: inline-flex;
	justify-self: end;
	padding: 5px 9px;
	font-size: 11px;
	font-weight: 900;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	border-radius: 999px;
}

.sgp-hcp-billing-date-history-status--success {
	color: var(--h-success);
	background: var(--h-success-soft);
}

.sgp-hcp-billing-date-history-status--dry_run {
	color: #2f5b7b;
	background: rgba(47, 91, 123, 0.1);
}

.sgp-hcp-billing-date-history-status--refused,
.sgp-hcp-billing-date-history-status--failed {
	color: var(--h-warning);
	background: var(--h-warning-soft);
}

.sgp-hcp-billing-date-history-status--unknown {
	color: var(--h-text-soft);
	background: rgba(92, 74, 58, 0.1);
}

.sgp-hcp-balance-box,
.sgp-hcp-refund-box {
	display: grid;
	gap: 10px;
	padding: 14px;
	background: linear-gradient(135deg, var(--h-cream), var(--h-rose-50));
	border: 1px solid rgba(167, 28, 51, 0.14);
	border-radius: 18px;
}

.sgp-hcp-balance-box strong,
.sgp-hcp-refund-box strong,
.sgp-hcp-balance-result strong {
	color: var(--h-primary-dark);
	font-family: var(--sgp-h-cal-font-heading);
	font-size: 18px;
	line-height: 1.2;
}

.sgp-hcp-balance-box p,
.sgp-hcp-refund-box p,
.sgp-hcp-balance-result p {
	margin: 0;
	color: var(--h-text-soft);
	font-weight: 800;
	line-height: 1.45;
}

.sgp-hcp-balance-result {
	display: grid;
	gap: 9px;
	padding: 12px;
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
}

.sgp-hcp-balance-result[data-type="success"] {
	border-color: rgba(63, 143, 104, 0.22);
	background: var(--h-success-soft);
}

.sgp-hcp-balance-result[data-type="error"] {
	border-color: rgba(167, 28, 51, 0.18);
	background: var(--h-error-soft);
	color: var(--h-error);
	font-weight: 900;
}

.sgp-hcp-balance-result[data-type="loading"] {
	border-color: rgba(185, 121, 44, 0.24);
	background: var(--h-warning-soft);
	color: var(--h-warning);
	font-weight: 900;
}

.sgp-hcp-balance-link {
	padding: 9px 10px;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(234, 221, 225, 0.92);
	border-radius: 12px;
	color: var(--h-primary-dark);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.sgp-hcp-balance-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sgp-hcp-refund-summary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 14px;
}

.sgp-hcp-refund-summary div {
	display: grid;
	gap: 5px;
	padding: 12px;
	background: var(--h-rose-50);
	border: 1px solid var(--h-border);
	border-radius: 14px;
}

.sgp-hcp-refund-summary span,
.sgp-hcp-refund-amount span,
.sgp-hcp-modal label > span {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-refund-choice {
	display: grid;
	gap: 8px;
	margin-bottom: 14px;
}

.sgp-hcp-refund-choice label {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 12px;
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	font-weight: 900;
}

.sgp-hcp-subscription-cancel-note {
	display: grid;
	gap: 8px;
	margin: 14px 0;
}

.sgp-hcp-subscription-cancel-note textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 120px;
	padding: 12px 14px;
	color: var(--h-text);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	box-shadow: none;
	font: inherit;
	line-height: 1.5;
	resize: vertical;
	vertical-align: top;
}

.sgp-hcp-subscription-cancel-note textarea:focus {
	border-color: rgba(167, 28, 51, 0.42);
	outline: none;
	box-shadow: 0 0 0 3px rgba(167, 28, 51, 0.08);
}

.sgp-hcp-subscription-cancel-confirm {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 14px 0;
	padding: 12px 14px;
	color: var(--h-primary-dark);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	cursor: pointer;
	font-weight: 900;
	line-height: 1.45;
}

.sgp-hcp-subscription-cancel-confirm input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--h-primary);
}

.sgp-hcp-subscription-cancel-confirm span {
	display: block;
	min-width: 0;
	color: var(--h-primary-dark);
	font-size: 14px;
	font-weight: 900;
	text-transform: none;
}

.sgp-hcp-modal [data-sgp-hcp-form="refund"] label {
	display: grid;
	gap: 8px;
}

.sgp-hcp-modal [data-sgp-hcp-form="refund"] textarea {
	display: block;
	width: 100%;
	min-height: 110px;
	padding: 12px 14px;
	color: var(--h-text);
	background: var(--h-white);
	border: 1px solid var(--h-border);
	border-radius: 14px;
	box-shadow: none;
	font: inherit;
	line-height: 1.5;
	resize: vertical;
	vertical-align: top;
}

.sgp-hcp-modal [data-sgp-hcp-form="refund"] textarea:focus {
	border-color: rgba(167, 28, 51, 0.42);
	outline: none;
	box-shadow: 0 0 0 3px rgba(167, 28, 51, 0.08);
}

.sgp-hcp-refund-warning {
	margin: 14px 0;
	padding: 12px;
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
	border-radius: 14px;
	font-weight: 900;
	line-height: 1.45;
}

.sgp-hcp-billing-date-analysis {
	display: grid;
	gap: 8px;
	margin: 12px 0;
	padding: 12px;
	color: var(--h-primary-dark);
	background: rgba(47, 91, 123, 0.08);
	border: 1px solid rgba(47, 91, 123, 0.18);
	border-radius: 14px;
	font-weight: 800;
	line-height: 1.45;
}

.sgp-hcp-billing-date-analysis p,
.sgp-hcp-billing-date-analysis ul {
	margin: 0;
}

.sgp-hcp-billing-date-analysis ul {
	padding-left: 18px;
}

.sgp-hcp-refund-result,
.sgp-hcp-refund-email-result {
	display: grid;
	gap: 8px;
	margin: 12px 0;
	padding: 12px;
	border-radius: 14px;
	font-weight: 900;
}

.sgp-hcp-refund-result[data-type="success"],
.sgp-hcp-refund-email-result[data-type="success"] {
	color: var(--h-success);
	background: var(--h-success-soft);
	border: 1px solid rgba(63, 143, 104, 0.22);
}

.sgp-hcp-refund-result[data-type="error"],
.sgp-hcp-refund-email-result[data-type="error"] {
	color: var(--h-error);
	background: var(--h-error-soft);
	border: 1px solid rgba(167, 28, 51, 0.18);
}

.sgp-hcp-refund-result[data-type="loading"],
.sgp-hcp-refund-email-result[data-type="loading"] {
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
}

.sgp-hcp-refund-result[data-type="warning"] {
	color: var(--h-warning);
	background: var(--h-warning-soft);
	border: 1px solid rgba(185, 121, 44, 0.24);
}

.sgp-hcp-subscription-renewal-link-field {
	display: grid;
	gap: 8px;
	margin-top: 12px;
}

.sgp-hcp-renewal-link-input {
	width: 100%;
	max-width: 100%;
	padding: 10px 12px;
	border: 1px solid rgba(167, 28, 51, 0.2);
	border-radius: 12px;
	font-size: 13px;
	font-weight: 700;
	word-break: break-all;
}

.sgp-hcp-subscription-renewal-link-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 10px;
}

.sgp-hcp-subscription-renewal-success {
	display: grid;
	gap: 8px;
	margin: 12px 0;
}

.sgp-hcp-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: grid;
	align-items: start;
	justify-items: center;
	padding: 18px;
	padding-top: 32px;
	background: rgba(42, 9, 13, 0.46);
	overflow-y: auto;
}

body.admin-bar .sgp-hcp-modal {
	padding-top: 64px;
}

.sgp-hcp-modal[hidden],
.sgp-hcp-drawer[hidden],
.sgp-hcp [hidden] {
	display: none;
}

.sgp-hcp-modal__dialog {
	width: min(760px, 100%);
	max-height: calc(100vh - 64px);
	overflow-y: auto;
	padding: 22px;
}

body.admin-bar .sgp-hcp-modal__dialog {
	max-height: calc(100vh - 96px);
}

.sgp-hcp-modal header,
.sgp-hcp-modal footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.sgp-hcp-modal footer {
	justify-content: flex-end;
	margin: 16px 0 0;
}

.sgp-hcp-modal header button {
	color: var(--h-text-soft);
	background: transparent;
	border: 0;
	cursor: pointer;
	font-weight: 800;
}

.sgp-hcp-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.sgp-hcp-form-grid label {
	display: grid;
	gap: 7px;
	color: var(--h-text);
	font-size: 14px;
	font-weight: 800;
}

.sgp-hcp-form-grid__full {
	grid-column: 1 / -1;
}

.sgp-hcp-drawer {
	position: fixed;
	top: 24px;
	right: 18px;
	z-index: 2147483001;
	width: min(430px, calc(100vw - 36px));
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	padding: 22px;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

body.admin-bar .sgp-hcp-drawer {
	top: 56px;
	max-height: calc(100vh - 80px);
}

.sgp-hcp-detail {
	display: grid;
	gap: 16px;
}

.sgp-hcp-detail dl {
	display: grid;
	gap: 9px;
	margin: 0;
}

.sgp-hcp-detail dl div {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 12px;
	background: var(--h-rose-50);
	border: 1px solid var(--h-border);
	border-radius: 14px;
}

.sgp-hcp-detail dt {
	color: var(--h-text-soft);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
}

.sgp-hcp-detail dd {
	margin: 0;
	color: var(--h-primary-dark);
	font-weight: 800;
	text-align: right;
}

.sgp-hcp :where(p, small, span, label, dt, dd, li),
.sgp-hcp-access-message,
.sgp-hcp-feedback,
.sgp-hcp-empty,
.sgp-hcp-event,
.sgp-hcp-event small,
.sgp-hcp-week-day p,
.sgp-hcp-week-day header span,
.sgp-hcp-client-card dl,
.sgp-hcp-detail dl,
.sgp-hcp-form-grid label {
	font-family: var(--sgp-h-cal-font-body);
	font-size: var(--sgp-h-cal-font-body-size);
	font-weight: var(--sgp-h-cal-font-body-weight);
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.sgp-hcp :where(h2, h3, h4),
.sgp-hcp :where(.sgp-hcp-section-heading h3, .sgp-hcp-home-hero h3, .sgp-hcp-home-card h3, .sgp-hcp-kpi-card strong, .sgp-hcp-communication-card h4, .sgp-hcp-numbers-grid strong, .sgp-hcp-today-card p:first-of-type, .sgp-hcp-event strong, .sgp-hcp-week-day header strong, .sgp-hcp-client-card h4, .sgp-hcp-quick-card strong, .sgp-hcp-detail h3) {
	font-family: var(--sgp-h-cal-font-heading);
	font-size: var(--sgp-h-cal-font-heading-size);
	font-weight: var(--sgp-h-cal-font-heading-weight);
	line-height: 1.18;
	overflow-wrap: anywhere;
}

.sgp-hcp :where(button, .sgp-hcp-button, .sgp-hcp-tabs button, .sgp-hcp-quick-card),
.sgp-hcp :where(input[type="button"], input[type="submit"]) {
	max-width: 100%;
	font-family: var(--sgp-h-cal-font-button);
	font-size: var(--sgp-h-cal-font-button-size);
	font-weight: var(--sgp-h-cal-font-button-weight);
	line-height: 1.25;
	overflow-wrap: anywhere;
	white-space: normal;
}

.sgp-hcp :where(input, select, textarea) {
	font-family: var(--sgp-h-cal-font-body);
	font-size: var(--sgp-h-cal-font-body-size);
	font-weight: var(--sgp-h-cal-font-body-weight);
	line-height: 1.35;
}

.sgp-hcp-header h2,
.sgp-hcp-section-heading h3,
.sgp-hcp-modal h3,
.sgp-hcp-detail h3,
.sgp-hcp-home-hero h3,
.sgp-hcp-home-card h3,
.sgp-hcp-kpi-card strong,
.sgp-hcp-communication-card h4,
.sgp-hcp-numbers-grid strong,
.sgp-hcp-today-card p:first-of-type,
.sgp-hcp-event strong,
.sgp-hcp-week-day header strong,
.sgp-hcp-client-card h4,
.sgp-hcp-quick-card strong {
	font-family: var(--sgp-h-cal-font-heading);
	font-size: var(--sgp-h-cal-font-heading-size);
	font-weight: var(--sgp-h-cal-font-heading-weight);
	line-height: 1.18;
	overflow-wrap: anywhere;
}

.sgp-hcp-header p:not(.sgp-hcp-kicker),
.sgp-hcp-section-heading p,
.sgp-hcp-home-hero p:not(.sgp-hcp-kicker),
.sgp-hcp-today-card p,
.sgp-hcp-today-card small,
.sgp-hcp-kpi-card span,
.sgp-hcp-home-dl dt,
.sgp-hcp-home-dl dd,
.sgp-hcp-alert-list li,
.sgp-hcp-communication-card p,
.sgp-hcp-communication-card small,
.sgp-hcp-message-chip,
.sgp-hcp-card-signals span,
.sgp-hcp-top-services span,
.sgp-hcp-treatment-item p,
.sgp-hcp-treatment-badge,
.sgp-hcp-status-badge,
.sgp-hcp-numbers-grid span,
.sgp-hcp-numbers-grid small,
.sgp-hcp-top-services p,
.sgp-hcp-mini-stats span,
.sgp-hcp-week-chip,
.sgp-hcp-event,
.sgp-hcp-event small,
.sgp-hcp-empty,
.sgp-hcp-week-day header span,
.sgp-hcp-week-day p,
.sgp-hcp-client-search,
.sgp-hcp-client-card dt,
.sgp-hcp-client-card dd,
.sgp-hcp-badge,
.sgp-hcp-quick-card span,
.sgp-hcp-form-grid label,
.sgp-hcp-detail dt,
.sgp-hcp-detail dd,
.sgp-hcp-feedback,
.sgp-hcp-access-message {
	font-family: var(--sgp-h-cal-font-body);
	font-size: var(--sgp-h-cal-font-body-size);
	font-weight: var(--sgp-h-cal-font-body-weight);
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.sgp-hcp-tabs button,
.sgp-hcp-button,
.sgp-hcp-contact-actions .sgp-hcp-button,
.sgp-hcp-card-actions .sgp-hcp-button,
.sgp-hcp-client-card footer .sgp-hcp-button,
.sgp-hcp-quick-card,
.sgp-hcp-modal header button {
	max-width: 100%;
	font-family: var(--sgp-h-cal-font-button);
	font-size: var(--sgp-h-cal-font-button-size);
	font-weight: var(--sgp-h-cal-font-button-weight);
	line-height: 1.25;
	overflow-wrap: anywhere;
	white-space: normal;
}

.sgp-hcp-access-message {
	font-family: var(--sgp-h-cal-access-text-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-access-text-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-access-text-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-access-text-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-access-text-transform, none);
}

.sgp-hcp-access-message strong {
	font-family: var(--sgp-h-cal-access-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-access-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-access-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-access-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-access-title-transform, none);
}

.sgp-hcp-kicker,
.sgp-hcp-header .sgp-hcp-kicker,
.sgp-hcp-home-card .sgp-hcp-kicker,
.sgp-hcp-detail .sgp-hcp-kicker {
	font-family: var(--sgp-h-cal-header-kicker-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-header-kicker-size, 12px);
	font-weight: var(--sgp-h-cal-header-kicker-weight, 800);
	color: var(--sgp-h-cal-header-kicker-color, var(--h-primary));
	text-transform: var(--sgp-h-cal-header-kicker-transform, uppercase);
}

.sgp-hcp-header h2,
.sgp-hcp-home-hero h3 {
	font-family: var(--sgp-h-cal-header-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-header-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-header-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-header-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-header-title-transform, none);
}

.sgp-hcp-header p:not(.sgp-hcp-kicker),
.sgp-hcp-home-hero p:not(.sgp-hcp-kicker) {
	font-family: var(--sgp-h-cal-header-intro-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-header-intro-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-header-intro-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-header-intro-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-header-intro-transform, none);
}

.sgp-hcp-tabs button {
	font-family: var(--sgp-h-cal-nav-font, var(--sgp-h-cal-font-button));
	font-size: var(--sgp-h-cal-nav-size, var(--sgp-h-cal-font-button-size));
	font-weight: var(--sgp-h-cal-nav-weight, var(--sgp-h-cal-font-button-weight));
	color: var(--sgp-h-cal-nav-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-nav-transform, none);
}

.sgp-hcp-tabs button:hover,
.sgp-hcp-tabs button:focus {
	color: var(--sgp-h-cal-nav-active-color, var(--sgp-h-cal-nav-color, var(--h-primary)));
}

.sgp-hcp-tabs button.is-active {
	color: var(--h-white);
}

.sgp-hcp-section-heading h3,
.sgp-hcp-home-card h3,
.sgp-hcp-modal h3,
.sgp-hcp-detail h3,
.sgp-hcp-quick-card strong {
	font-family: var(--sgp-h-cal-panel-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-panel-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-panel-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-panel-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-panel-title-transform, none);
}

.sgp-hcp-section-heading p,
.sgp-hcp-quick-card span {
	font-family: var(--sgp-h-cal-panel-text-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-panel-text-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-panel-text-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-panel-text-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-panel-text-transform, none);
}

.sgp-hcp-kpi-card span,
.sgp-hcp-numbers-grid span {
	font-family: var(--sgp-h-cal-stat-label-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-stat-label-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-stat-label-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-stat-label-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-stat-label-transform, uppercase);
}

.sgp-hcp-kpi-card strong,
.sgp-hcp-numbers-grid strong {
	font-family: var(--sgp-h-cal-stat-value-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-stat-value-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-stat-value-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-stat-value-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-stat-value-transform, none);
}

.sgp-hcp-numbers-grid small,
.sgp-hcp-top-services p {
	font-family: var(--sgp-h-cal-stat-help-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-stat-help-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-stat-help-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-stat-help-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-stat-help-transform, uppercase);
}

.sgp-hcp [data-sgp-hcp-day] .sgp-hcp-section-heading h3,
.sgp-hcp [data-sgp-hcp-week] .sgp-hcp-section-heading h3 {
	font-family: var(--sgp-h-cal-planning-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-planning-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-planning-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-planning-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-planning-title-transform, none);
}

.sgp-hcp-week-day header strong {
	font-family: var(--sgp-h-cal-day-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-day-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-day-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-day-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-day-title-transform, none);
}

.sgp-hcp-event__time,
.sgp-hcp-today-card header strong {
	font-family: var(--sgp-h-cal-time-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-time-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-time-weight, 900);
	color: var(--sgp-h-cal-time-color, var(--h-primary));
	text-transform: var(--sgp-h-cal-time-transform, none);
}

.sgp-hcp-event strong,
.sgp-hcp-today-card p:first-of-type,
.sgp-hcp-communication-card h4 {
	font-family: var(--sgp-h-cal-appointment-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-appointment-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-appointment-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-appointment-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-appointment-title-transform, none);
}

.sgp-hcp-event small,
.sgp-hcp-week-chip,
.sgp-hcp-today-card p:not(:first-of-type),
.sgp-hcp-today-card small,
.sgp-hcp-communication-card p,
.sgp-hcp-communication-card small {
	font-family: var(--sgp-h-cal-appointment-meta-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-appointment-meta-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-appointment-meta-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-appointment-meta-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-appointment-meta-transform, none);
}

.sgp-hcp [data-sgp-hcp-tab-panel="clients"] .sgp-hcp-section-heading h3 {
	font-family: var(--sgp-h-cal-client-title-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-client-title-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-client-title-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-client-title-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-client-title-transform, none);
}

.sgp-hcp-client-card h4,
.sgp-hcp-detail--client h3 {
	font-family: var(--sgp-h-cal-client-name-font, var(--sgp-h-cal-font-heading));
	font-size: var(--sgp-h-cal-client-name-size, var(--sgp-h-cal-font-heading-size));
	font-weight: var(--sgp-h-cal-client-name-weight, var(--sgp-h-cal-font-heading-weight));
	color: var(--sgp-h-cal-client-name-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-client-name-transform, none);
}

.sgp-hcp-client-card dd,
.sgp-hcp-client-search,
.sgp-hcp-detail--client dd {
	font-family: var(--sgp-h-cal-client-meta-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-client-meta-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-client-meta-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-client-meta-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-client-meta-transform, none);
}

.sgp-hcp table th {
	font-family: var(--sgp-h-cal-table-head-font, var(--sgp-h-cal-label-font, var(--sgp-h-cal-font-body)));
	font-size: var(--sgp-h-cal-table-head-size, var(--sgp-h-cal-label-size, var(--sgp-h-cal-font-body-size)));
	font-weight: var(--sgp-h-cal-table-head-weight, var(--sgp-h-cal-label-weight, 900));
	color: var(--sgp-h-cal-table-head-color, var(--sgp-h-cal-label-color, var(--h-text-soft)));
	text-transform: var(--sgp-h-cal-table-head-transform, var(--sgp-h-cal-label-transform, uppercase));
}

.sgp-hcp-home-dl dt,
.sgp-hcp-detail dt,
.sgp-hcp-client-card dt {
	font-family: var(--sgp-h-cal-label-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-label-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-label-weight, 900);
	color: var(--sgp-h-cal-label-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-label-transform, uppercase);
}

.sgp-hcp-home-dl dd,
.sgp-hcp-detail dd,
.sgp-hcp-client-card dd {
	font-family: var(--sgp-h-cal-value-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-value-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-value-weight, 800);
	color: var(--sgp-h-cal-value-color, var(--h-primary-dark));
	text-transform: var(--sgp-h-cal-value-transform, none);
}

.sgp-hcp-form-grid label {
	font-family: var(--sgp-h-cal-form-label-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-form-label-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-form-label-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-form-label-color, var(--h-text));
	text-transform: var(--sgp-h-cal-form-label-transform, none);
}

.sgp-hcp input,
.sgp-hcp select,
.sgp-hcp textarea {
	font-family: var(--sgp-h-cal-form-help-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-form-help-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-form-help-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-form-help-color, var(--h-text));
	text-transform: var(--sgp-h-cal-form-help-transform, none);
}

.sgp-hcp-top-services p,
.sgp-hcp-week-day p,
.sgp-hcp-treatment-item p {
	font-family: var(--sgp-h-cal-help-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-help-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-help-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-help-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-help-transform, none);
}

.sgp-hcp-empty {
	font-family: var(--sgp-h-cal-empty-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-empty-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-empty-weight, 800);
	color: var(--sgp-h-cal-empty-color, var(--h-text-soft));
	text-transform: var(--sgp-h-cal-empty-transform, none);
}

.sgp-hcp-feedback {
	font-family: var(--sgp-h-cal-feedback-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-feedback-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-feedback-weight, 800);
	color: var(--sgp-h-cal-feedback-color, var(--h-success));
	text-transform: var(--sgp-h-cal-feedback-transform, none);
}

.sgp-hcp-button:not(.sgp-hcp-button--secondary):not(.sgp-hcp-button--ghost):not(.sgp-hcp-button--danger),
.sgp-hcp input[type="submit"] {
	font-family: var(--sgp-h-cal-primary-button-font, var(--sgp-h-cal-font-button));
	font-size: var(--sgp-h-cal-primary-button-size, var(--sgp-h-cal-font-button-size));
	font-weight: var(--sgp-h-cal-primary-button-weight, var(--sgp-h-cal-font-button-weight));
	color: var(--sgp-h-cal-primary-button-color, var(--h-white));
	text-transform: var(--sgp-h-cal-primary-button-transform, none);
}

.sgp-hcp-button--secondary,
.sgp-hcp-button--ghost,
.sgp-hcp-modal header button,
.sgp-hcp-quick-card {
	font-family: var(--sgp-h-cal-secondary-button-font, var(--sgp-h-cal-font-button));
	font-size: var(--sgp-h-cal-secondary-button-size, var(--sgp-h-cal-font-button-size));
	font-weight: var(--sgp-h-cal-secondary-button-weight, var(--sgp-h-cal-font-button-weight));
	color: var(--sgp-h-cal-secondary-button-color, var(--h-primary));
	text-transform: var(--sgp-h-cal-secondary-button-transform, none);
}

.sgp-hcp a:not(.sgp-hcp-button),
.sgp-hcp-message-chip {
	font-family: var(--sgp-h-cal-link-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-link-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-link-weight, var(--sgp-h-cal-font-body-weight));
	color: var(--sgp-h-cal-link-color, var(--h-primary));
	text-transform: var(--sgp-h-cal-link-transform, none);
}

.sgp-hcp-badge,
.sgp-hcp-status-badge,
.sgp-hcp-treatment-badge,
.sgp-hcp-card-signals span,
.sgp-hcp-top-services span,
.sgp-hcp-mini-stats span {
	font-family: var(--sgp-h-cal-badge-font, var(--sgp-h-cal-font-body));
	font-size: var(--sgp-h-cal-badge-size, var(--sgp-h-cal-font-body-size));
	font-weight: var(--sgp-h-cal-badge-weight, 900);
	color: var(--sgp-h-cal-badge-color, var(--h-primary));
	text-transform: var(--sgp-h-cal-badge-transform, none);
}

@media (min-width: 980px) {
	.sgp-hcp-header {
		align-items: start;
	}

	.sgp-hcp-header__actions {
		justify-content: flex-end;
	}
}

@media (max-width: 1024px) {
	.sgp-hcp-kpi-grid,
	.sgp-hcp-numbers-grid,
	.sgp-hcp-today-cards,
	.sgp-hcp-finance-summary,
	.sgp-hcp-finance-latest-grid,
	.sgp-hcp-upcoming-list,
	.sgp-hcp-google-reviews-grid,
	.sgp-hcp-prep-layout {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

	.sgp-hcp-subscription-tools {
		grid-template-columns: minmax(0, 1fr);
		max-width: 100%;
	}
}

@media (max-width: 767px) {
	.sgp-hcp {
		gap: 14px;
	}

	.elementor-widget-html .sgp-hcp {
		position: relative;
		left: 50%;
		width: calc(100vw - 32px) !important;
		max-width: 520px !important;
		margin-right: auto;
		margin-left: auto;
		box-sizing: border-box;
		transform: translateX(-50%);
	}

	.elementor-widget-html .sgp-hcp .sgp-hcp-header,
	.elementor-widget-html .sgp-hcp .sgp-hcp-tabs,
	.elementor-widget-html .sgp-hcp .sgp-hcp-panel {
		width: 100%;
		box-sizing: border-box;
	}

	.sgp-hcp-header,
	.sgp-hcp-panel,
	.sgp-hcp-modal__dialog {
		padding: 18px;
		border-radius: 18px;
	}

	.sgp-hcp-tabs {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: stretch;
		justify-content: stretch;
		gap: 10px;
		padding: 12px;
		overflow-x: visible;
		border-radius: 20px;
	}

	.sgp-hcp-tabs button {
		width: 100%;
		min-height: 52px;
		padding: 12px 10px;
		border-radius: 16px;
		background: var(--h-white);
		border-color: rgba(167, 28, 51, 0.18);
		box-shadow: 0 6px 14px rgba(44, 26, 29, 0.05);
		font-size: 13px;
		line-height: 1.28;
		white-space: normal;
	}

	.sgp-hcp-tabs button.is-active {
		color: var(--h-white);
		background: var(--h-primary);
		border-color: var(--h-primary);
		box-shadow: 0 10px 20px rgba(167, 28, 51, 0.16);
	}

	.sgp-hcp-finance-summary,
	.sgp-hcp-finance-summary--manager,
	.sgp-hcp-finance-latest-grid,
	.sgp-hcp-upcoming-list,
	.sgp-hcp-google-reviews-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.sgp-hcp-finance-filters {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.sgp-hcp-header__actions,
	.sgp-hcp-home-hero__actions,
	.sgp-hcp-home-shortcuts,
	.sgp-hcp-planning-toolbar__group,
	.sgp-hcp-contact-actions,
	.sgp-hcp-card-actions,
	.sgp-hcp-toolbar,
	.sgp-hcp-button,
	.sgp-hcp-toolbar input,
	.sgp-hcp-home-shortcuts .sgp-hcp-button,
	.sgp-hcp-contact-actions .sgp-hcp-button,
	.sgp-hcp-card-actions .sgp-hcp-button,
	.sgp-hcp-client-card footer,
	.sgp-hcp-client-card footer .sgp-hcp-button {
		width: 100%;
	}

	.sgp-hcp-home-hero {
		display: grid;
		padding: 18px;
	}

	.sgp-hcp-home-hero__actions {
		justify-content: stretch;
	}

	.sgp-hcp-section-heading {
		display: grid;
	}

	.sgp-hcp-billing-date-history-item {
		grid-template-columns: 1fr;
	}

	.sgp-hcp-billing-date-history-status {
		justify-self: start;
	}

	.sgp-hcp-mini-stats {
		justify-content: flex-start;
	}

	.sgp-hcp-event {
		grid-template-columns: 1fr;
	}

	.sgp-hcp-event__time {
		grid-row: auto;
	}

	.sgp-hcp-event__badges {
		grid-column: 1;
	}

	.sgp-hcp-week-grid,
	.sgp-hcp-form-grid,
	.sgp-hcp-home-grid,
	.sgp-hcp-kpi-grid,
	.sgp-hcp-numbers-grid,
	.sgp-hcp-today-cards,
	.sgp-hcp-finance-summary,
	.sgp-hcp-prep-layout,
	.sgp-hcp-clients-grid,
	.sgp-hcp-quick-grid {
		grid-template-columns: 1fr;
	}

	.sgp-hcp.sgp-hcp--subscriptions-active {
		width: 100%;
		max-width: 100%;
	}

	.sgp-hcp-subscriptions-panel .sgp-hcp-finance-table-card {
		padding: 14px;
	}

	.sgp-hcp-subscription-tools,
	.sgp-hcp-subscription-tools label {
		width: 100%;
	}

	.sgp-hcp-subscriptions-panel .sgp-hcp-table-scroll {
		overflow-x: visible;
	}

	.sgp-hcp-subscription-table {
		display: block;
		min-width: 0;
	}

	.sgp-hcp-subscription-table thead {
		display: none;
	}

	.sgp-hcp-subscription-table tbody,
	.sgp-hcp-subscription-table tr,
	.sgp-hcp-subscription-table td {
		display: block;
		width: 100%;
	}

	.sgp-hcp-subscription-table tr {
		margin-bottom: 14px;
		padding: 14px;
		background: linear-gradient(135deg, var(--h-white), var(--h-rose-50));
		border: 1px solid var(--h-border);
		border-radius: 18px;
		box-shadow: 0 10px 24px rgba(44, 26, 29, 0.06);
	}

	.sgp-hcp-subscription-table td {
		display: grid;
		grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr);
		gap: 10px;
		align-items: center;
		padding: 9px 0;
		border-bottom: 1px solid rgba(234, 221, 225, 0.72);
	}

	.sgp-hcp-subscription-table td:last-child {
		border-bottom: 0;
	}

	.sgp-hcp-subscription-table td::before {
		content: attr(data-label);
		color: var(--h-text-soft);
		font-size: 11px;
		font-weight: 900;
		text-transform: uppercase;
	}

	.sgp-hcp-subscription-table td .sgp-hcp-button {
		justify-self: stretch;
		width: 100%;
	}

	.sgp-hcp-planning-toolbar {
		display: grid;
	}

	.sgp-hcp-home-dl div,
	.sgp-hcp-treatment-item,
	.sgp-hcp-today-card header,
	.sgp-hcp-today-card footer {
		display: grid;
	}

	.sgp-hcp-treatment-item {
		grid-template-columns: 1fr;
	}

	.sgp-hcp-home-dl dd {
		text-align: left;
	}

	.sgp-hcp-client-card header,
	.sgp-hcp-client-card dl div {
		display: grid;
	}

	.sgp-hcp-client-card dd {
		text-align: left;
	}

	.sgp-hcp-drawer {
		inset: 12px 10px auto 10px;
		width: auto;
		max-height: calc(100vh - 24px);
	}

	body.admin-bar .sgp-hcp-drawer {
		top: 58px;
		max-height: calc(100vh - 70px);
	}

	.sgp-hcp-detail dl div {
		display: grid;
	}

	.sgp-hcp-detail dd {
		text-align: left;
	}
}

@media (max-width: 390px) {
	.elementor-widget-html .sgp-hcp {
		width: calc(100vw - 28px) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sgp-hcp *,
	.sgp-hcp *::before,
	.sgp-hcp *::after {
		transition: none;
	}
}
