/* ==========================================================================
   Therapist Management – frontend (assessment, registration, payment, dashboard)
   Brand colours come from CSS variables printed from the theme settings.
   Selectors are prefixed with "body .tm-scope" so Hello Elementor's reset and
   Elementor kit styles do not override them.
   ========================================================================== */

:root {
	--tm-primary: #6B5568;
	--tm-secondary: #8FA184;
	--tm-text: #7A7A7A;
	--tm-accent: #8FA184;
	--tm-olive: #556B4E;
	--tm-rose: #A9788A;
	--tm-offwhite: #F7F4EF;
	--tm-tan: #DCC9B4;
	--tm-dark: #2E3B36;
	--tm-grey: #6B6B6B;
}

body .tm-scope {
	--tm-radius: 10px;
	--tm-radius-lg: 16px;
	--tm-pill: 999px;
	--tm-border: #CFCFCF;
	--tm-error: #C0392B;
	--tm-success: var(--tm-olive);
	--tm-shadow: 0 2px 6px rgba(46, 59, 54, 0.06), 0 12px 32px rgba(46, 59, 54, 0.06);
	--tm-primary-soft: color-mix(in srgb, var(--tm-primary) 14%, #fff);
	--tm-primary-softer: color-mix(in srgb, var(--tm-primary) 7%, #fff);
	--tm-secondary-soft: color-mix(in srgb, var(--tm-secondary) 26%, #fff);
	--tm-secondary-strong: color-mix(in srgb, var(--tm-secondary) 82%, var(--tm-dark));
	color: var(--tm-dark);
	font-family: inherit;
	line-height: 1.55;
	box-sizing: border-box;
}

body .tm-scope *,
body .tm-scope *::before,
body .tm-scope *::after {
	box-sizing: inherit;
}

body .tm-scope h1,
body .tm-scope h2,
body .tm-scope h3,
body .tm-scope h4 {
	color: var(--tm-dark);
	font-family: inherit;
	line-height: 1.25;
	margin: 0 0 0.6em;
}

body .tm-scope p {
	margin: 0 0 1em;
}

body .tm-scope a {
	color: var(--tm-olive);
}

body .tm-scope .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal;
}

body .tm-scope :focus-visible {
	outline: 3px solid color-mix(in srgb, var(--tm-primary) 55%, #fff);
	outline-offset: 2px;
}

body .site-main.tm-full-width,
body:not([class*="elementor-page-"]) .site-main.tm-full-width {
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

body .tm-scope .tm-btn {
	align-items: center;
	background: var(--tm-secondary);
	border: 2px solid var(--tm-secondary);
	border-radius: var(--tm-pill);
	box-shadow: none;
	color: var(--tm-dark);
	cursor: pointer;
	display: inline-flex;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 600;
	gap: 0.5em;
	justify-content: center;
	line-height: 1.2;
	min-height: 48px;
	padding: 0.7em 1.8em;
	text-decoration: none;
	text-transform: none;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.1s;
}

body .tm-scope .tm-btn:hover,
body .tm-scope .tm-btn:focus-visible {
	background: var(--tm-olive);
	border-color: var(--tm-olive);
	color: #fff;
}

body .tm-scope .tm-btn:active {
	transform: translateY(1px);
}

body .tm-scope .tm-btn[disabled],
body .tm-scope .tm-btn[disabled]:hover {
	background: var(--tm-secondary);
	border-color: var(--tm-secondary);
	color: var(--tm-dark);
	cursor: not-allowed;
	opacity: 0.7;
}

body .tm-scope .tm-btn--secondary {
	background: var(--tm-primary);
	border-color: var(--tm-primary);
	color: #fff;
}

body .tm-scope .tm-btn--secondary:hover,
body .tm-scope .tm-btn--secondary:focus-visible {
	background: color-mix(in srgb, var(--tm-primary) 80%, #000);
	border-color: color-mix(in srgb, var(--tm-primary) 80%, #000);
	color: #fff;
}

body .tm-scope .tm-btn--outline {
	background: transparent;
	border-color: var(--tm-olive);
	color: var(--tm-olive);
}

body .tm-scope .tm-btn--ghost {
	background: transparent;
	border-color: transparent;
	color: var(--tm-primary);
}

body .tm-scope .tm-btn--ghost:hover,
body .tm-scope .tm-btn--ghost:focus-visible {
	background: var(--tm-primary-soft);
	border-color: var(--tm-primary-soft);
	color: var(--tm-primary);
}

body .tm-scope .tm-btn--ghost[disabled],
body .tm-scope .tm-btn--ghost[disabled]:hover {
	background: transparent;
	border-color: transparent;
	color: var(--tm-grey);
}

body .tm-scope .tm-btn--sm {
	font-size: 0.875rem;
	min-height: 36px;
	padding: 0.45em 1.1em;
}

body .tm-scope .tm-btn--lg {
	font-size: 1.125rem;
	min-height: 54px;
	padding: 0.8em 2.4em;
}

body .tm-scope .tm-btn--block {
	width: 100%;
}

body .tm-scope .tm-link-btn,
body .tm-scope .tm-link-btn:hover,
body .tm-scope .tm-link-btn:focus {
	background: none;
	border: 0;
	color: var(--tm-olive);
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	padding: 0;
	text-decoration: underline;
}

/* Hello Elementor's reset keeps buttons on one line; these read as text links and must wrap. */
body .tm-scope .tm-link-btn {
	max-width: 100%;
	overflow-wrap: anywhere;
	text-align: inherit;
	white-space: normal;
}

body .tm-scope .tm-link {
	color: var(--tm-olive);
	font-weight: 600;
}

body .tm-scope .tm-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-end;
}

body .tm-scope .tm-actions--center {
	justify-content: center;
}

/* --------------------------------------------------------------------------
   Spinner / loader
   -------------------------------------------------------------------------- */

body .tm-scope .tm-spinner {
	animation: tm-spin 0.75s linear infinite;
	border: 2px solid currentColor;
	border-radius: 50%;
	border-right-color: transparent;
	display: inline-block;
	height: 1em;
	vertical-align: -0.15em;
	width: 1em;
}

body .tm-scope .tm-spinner--lg {
	color: var(--tm-primary);
	height: 2.5rem;
	margin-bottom: 1rem;
	width: 2.5rem;
}

body .tm-scope .tm-loader {
	align-items: center;
	color: var(--tm-grey);
	display: flex;
	gap: 0.75rem;
	justify-content: center;
	padding: 4rem 1rem;
}

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

/* --------------------------------------------------------------------------
   Cards, alerts, helpers
   -------------------------------------------------------------------------- */

body .tm-scope .tm-card {
	background: #fff;
	border-radius: var(--tm-radius);
	box-shadow: var(--tm-shadow);
	margin-bottom: 1.5rem;
	padding: 2rem;
}

body .tm-scope .tm-card--narrow {
	margin-left: auto;
	margin-right: auto;
	max-width: 480px;
}

body .tm-scope .tm-card--highlight {
	border-top: 4px solid var(--tm-secondary);
}

body .tm-scope .tm-card__head {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

body .tm-scope .tm-card__head .tm-card__title {
	margin: 0;
}

body .tm-scope .tm-card__title {
	font-size: 1.2rem;
	font-weight: 600;
}

body .tm-scope .tm-mt {
	margin-top: 2rem;
}

body .tm-scope .tm-center {
	text-align: center;
}

body .tm-scope .tm-help {
	color: var(--tm-grey);
	font-size: 0.875rem;
}

body .tm-scope .tm-appt-hint {
	background: var(--tm-secondary-soft, #EEF2EA);
	border-radius: 8px;
	color: var(--tm-olive, #4B5E3C);
	font-size: 0.85rem;
	line-height: 1.45;
	margin: -0.25rem 0 1rem;
	padding: 0.55rem 0.75rem;
}

body .tm-scope .tm-appt-hint.is-error {
	background: #FEF3F2;
	color: #B42318;
}

body .tm-scope .tm-appt-hint[hidden] {
	display: none;
}

body .tm-scope .tm-empty {
	color: var(--tm-grey);
	margin: 0.5rem 0 1rem;
}

body .tm-scope .tm-tag {
	background: var(--tm-primary-soft);
	border-radius: var(--tm-pill);
	color: var(--tm-primary);
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	margin-left: 0.6em;
	padding: 0.2em 0.7em;
	vertical-align: middle;
}

body .tm-scope .tm-alert {
	align-items: flex-start;
	border-radius: var(--tm-radius);
	display: flex;
	gap: 0.6rem;
	margin: 0 0 1.25rem;
	padding: 0.9rem 1.1rem;
}

body .tm-scope .tm-alert--info {
	background: var(--tm-primary-softer);
	color: var(--tm-dark);
}

body .tm-scope .tm-alert--success {
	background: var(--tm-secondary-soft);
	color: var(--tm-dark);
}

body .tm-scope .tm-alert--warning {
	background: color-mix(in srgb, var(--tm-tan) 45%, #fff);
	color: var(--tm-dark);
}

body .tm-scope .tm-alert--error {
	background: #FDECEA;
	color: var(--tm-error);
}

body .tm-scope .tm-alert--crisis {
	background: #FDECEA;
	border-left: 4px solid var(--tm-error);
	color: #7A1F16;
	font-weight: 600;
}

body .tm-scope .tm-alert--action {
	align-items: center;
	flex-wrap: wrap;
	justify-content: space-between;
}

body .tm-scope .tm-svg {
	display: inline-flex;
	flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Assessment – layout
   -------------------------------------------------------------------------- */

body .tm-scope.tm-assessment {
	background: var(--tm-offwhite);
	padding: calc(var(--tm-header-offset, 0px) + 2.5rem) 1.25rem 4rem;
}

body.tm-assessment-page .elementor-location-header,
body.tm-assessment-page #site-header {
	background-color: #ACB6A7;
}

body .tm-scope .tm-assessment__inner {
	margin: 0 auto;
	max-width: 880px;
}

body .tm-scope .tm-hero {
	margin: 0 auto 2rem;
	text-align: center;
}

body .tm-scope .tm-hero__title {
	color: var(--tm-dark);
	font-size: clamp(2rem, 4.5vw, 3rem);
	font-weight: 400;
	letter-spacing: -0.01em;
	margin-bottom: 1.25rem;
}

body .tm-scope .tm-hero__highlight {
	color: var(--tm-olive);
}

body .tm-scope .tm-hero__text {
	color: var(--tm-grey);
	font-size: 1rem;
	margin: 0 auto;
	max-width: 780px;
}

body .tm-scope .tm-hero__meta {
	color: var(--tm-grey);
	font-size: 0.85rem;
	margin: 0.75rem auto 0;
	max-width: 780px;
}

body .tm-scope .tm-question,
body .tm-scope .tm-register,
body .tm-scope .tm-payment,
body .tm-scope .tm-done {
	margin-left: auto;
	margin-right: auto;
	max-width: 600px;
}

body .tm-scope .tm-register,
body .tm-scope .tm-payment {
	max-width: 560px;
}

body .tm-scope .tm-question {
	max-width: 500px;
}

/* Progress */

body .tm-scope .tm-progress {
	display: flex;
	gap: 8px;
	margin: 0 auto 2rem;
	max-width: 500px;
}

body .tm-scope .tm-progress__seg {
	background: #DEDEDE;
	border-radius: var(--tm-pill);
	flex: 1;
	height: 5px;
	overflow: hidden;
}

body .tm-scope .tm-progress__fill {
	background: var(--tm-dark);
	border-radius: var(--tm-pill);
	display: block;
	height: 100%;
	transition: width 0.35s ease;
}

/* Question */

body .tm-scope .tm-question__head {
	align-items: center;
	color: var(--tm-grey);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.8rem;
	gap: 0.5rem;
	justify-content: space-between;
	margin-bottom: 1rem;
}

body .tm-scope .tm-question__section {
	color: var(--tm-primary);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

body .tm-scope .tm-question__count {
	font-weight: 600;
}

body .tm-scope .tm-question__stem {
	color: var(--tm-grey);
	font-size: 0.95rem;
	margin-bottom: 0.5rem;
}

body .tm-scope .tm-question__nav [hidden] {
	display: none !important;
}

/* The next question slides in from the right, the previous one from the left. */
body .tm-scope .tm-question--next {
	animation: tm-slide-from-right 0.35s ease-out;
}

body .tm-scope .tm-question--prev {
	animation: tm-slide-from-left 0.35s ease-out;
}

@keyframes tm-slide-from-right {
	from {
		opacity: 0;
		transform: translateX(48px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes tm-slide-from-left {
	from {
		opacity: 0;
		transform: translateX(-48px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .tm-scope .tm-question--next,
	body .tm-scope .tm-question--prev {
		animation: none;
	}
}

body .tm-scope .tm-question__title {
	font-size: clamp(1.25rem, 2.6vw, 1.5rem);
	font-weight: 500;
	margin-bottom: 0.5rem;
	outline: none;
}

body .tm-scope .tm-question__hint {
	color: var(--tm-grey);
	font-size: 0.875rem;
	margin: 0.35rem 0 0;
}

body .tm-scope .tm-question__title + .tm-options,
body .tm-scope .tm-question__title + .tm-select,
body .tm-scope .tm-question__hint + .tm-options,
body .tm-scope .tm-question__hint + .tm-select {
	margin-top: 1.25rem;
}

/* Options */

body .tm-scope .tm-options {
	display: grid;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}

body .tm-scope .tm-options .tm-option-wrap[hidden] {
	display: none;
}

body .tm-scope .tm-options__more,
body .tm-scope .tm-options__more:hover,
body .tm-scope .tm-options__more:focus {
	align-items: center;
	display: inline-flex;
	gap: 0.4rem;
	margin: -0.5rem 0 1.25rem;
	text-decoration: none;
	transition: color 0.2s ease;
}

body .tm-scope .tm-options__more::after {
	background-color: currentColor;
	content: "";
	height: 1em;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
	width: 1em;
}

body .tm-scope .tm-options__more:hover,
body .tm-scope .tm-options__more:focus-visible {
	color: var(--tm-dark);
}

body .tm-scope .tm-options__more:hover::after,
body .tm-scope .tm-options__more:focus-visible::after {
	transform: translateX(0.25em);
}

@media (min-width: 640px) {
	body .tm-scope .tm-options--columns {
		grid-template-columns: 1fr 1fr;
	}
}

body .tm-scope .tm-option {
	align-items: center;
	background: var(--tm-primary-soft);
	border: 2px solid transparent;
	border-radius: var(--tm-pill);
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	font-size: 14px;
	gap: 0.75rem;
	line-height: 1.35;
	margin: 0;
	min-height: 52px;
	padding: 0.75rem 1.4rem;
	position: relative;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
	vertical-align: baseline;
	width: 100%;
}

body .tm-scope .tm-option:hover {
	border-color: color-mix(in srgb, var(--tm-primary) 45%, #fff);
}

body .tm-scope .tm-option input {
	height: 1px;
	margin: 0;
	opacity: 0;
	position: absolute;
	width: 1px;
}

body .tm-scope .tm-option__mark {
	border: 2px solid color-mix(in srgb, var(--tm-primary) 55%, #fff);
	border-radius: 50%;
	flex-shrink: 0;
	height: 20px;
	position: relative;
	width: 20px;
}

body .tm-scope .tm-option--check {
	border-radius: var(--tm-radius);
}

body .tm-scope .tm-option--check .tm-option__mark {
	border-radius: 5px;
}

body .tm-scope .tm-option.is-selected {
	background: var(--tm-primary);
	border-color: var(--tm-primary);
	color: #fff;
}

body .tm-scope .tm-option.is-selected .tm-option__mark {
	background: #fff;
	border-color: #fff;
}

body .tm-scope .tm-option.is-selected .tm-option__mark::after {
	background: var(--tm-primary);
	border-radius: 50%;
	content: "";
	inset: 4px;
	position: absolute;
}

body .tm-scope .tm-option--check.is-selected .tm-option__mark::after {
	background: none;
	border: solid var(--tm-primary);
	border-radius: 0;
	border-width: 0 2.5px 2.5px 0;
	height: 10px;
	inset: auto;
	left: 5px;
	top: 1px;
	transform: rotate(45deg);
	width: 6px;
}

body .tm-scope .tm-option:has(input:focus-visible) {
	outline: 3px solid color-mix(in srgb, var(--tm-primary) 55%, #fff);
	outline-offset: 2px;
}

body .tm-scope .tm-specify {
	margin: 0.5rem 0 0.25rem 1rem;
}

body .tm-scope .has-error .tm-options .tm-option:not(.is-selected) {
	border-color: color-mix(in srgb, var(--tm-error) 45%, #fff);
}

/* Form controls */

body .tm-scope input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body .tm-scope select,
body .tm-scope textarea {
	background: #fff;
	border: 1px solid var(--tm-grey);
	border-radius: var(--tm-radius);
	box-shadow: none;
	color: var(--tm-dark);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	padding: 0.8rem 1rem;
	transition: border-color 0.15s, box-shadow 0.15s;
	width: 100%;
}

body .tm-scope input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
body .tm-scope select:focus,
body .tm-scope textarea:focus {
	border-color: var(--tm-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tm-primary) 22%, transparent);
	outline: none;
}

body .tm-scope textarea {
	resize: vertical;
}

body .tm-scope label {
	display: block;
	line-height: 1.4;
}

body .tm-scope .tm-select {
	margin-bottom: 1.25rem;
	position: relative;
}

body .tm-scope .tm-select__label {
	color: var(--tm-grey);
	font-size: 0.75rem;
	left: 1rem;
	pointer-events: none;
	position: absolute;
	top: 0.5rem;
	z-index: 1;
}

body .tm-scope .tm-select select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E3B36' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-position: right 1rem center;
	background-repeat: no-repeat;
	background-size: 20px;
	cursor: pointer;
	min-height: 56px;
	padding: 1.5rem 3rem 0.5rem 1rem;
}

/* Location question: state/territory and postcode under the country */

body .tm-scope .tm-location {
	display: grid;
	gap: 0 0.75rem;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}

body .tm-scope .tm-location[hidden] {
	display: none;
}

body .tm-scope .tm-location .tm-location__field--text input[type="text"] {
	min-height: 56px;
	padding: 1.5rem 1rem 0.5rem;
	width: 100%;
}

@media (max-width: 520px) {
	body .tm-scope .tm-location {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Age question: consent forms to sign */

body .tm-scope .tm-consent {
	background: var(--tm-offwhite);
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	margin-bottom: 1.25rem;
	padding: 0.9rem 1rem;
}

body .tm-scope .tm-consent__text {
	font-size: 0.875rem;
	margin: 0 0 0.6rem;
}

body .tm-scope .tm-consent__links {
	display: grid;
	gap: 0.4rem;
}

body .tm-scope .tm-consent__link {
	align-items: center;
	color: var(--tm-dark);
	display: inline-flex;
	font-size: 0.875rem;
	font-weight: 500;
	gap: 0.5rem;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body .tm-scope .tm-consent__link.is-current {
	color: var(--tm-olive);
	font-weight: 700;
}

/* Picker: a select with photos (therapist in "Request a session") */

body .tm-scope .tm-picker {
	position: relative;
}

body .tm-scope .tm-picker:not(.is-ready) .tm-picker__button,
body .tm-scope .tm-picker:not(.is-ready) .tm-picker__list,
body .tm-scope .tm-picker.is-ready select {
	display: none;
}

body .tm-scope .tm-picker__button {
	align-items: center;
	background: #fff;
	border: 1px solid var(--tm-grey);
	border-radius: var(--tm-radius);
	box-shadow: none;
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	gap: 0.75rem;
	letter-spacing: normal;
	line-height: 1.3;
	min-height: 58px;
	padding: 0.5rem 0.9rem 0.5rem 0.55rem;
	text-align: left;
	text-transform: none;
	transition: border-color 0.15s, box-shadow 0.15s;
	width: 100%;
}

body .tm-scope .tm-picker__button:hover,
body .tm-scope .tm-picker__button:focus {
	background: #fff;
	color: var(--tm-dark);
}

body .tm-scope .tm-picker__button:hover {
	border-color: var(--tm-primary);
}

body .tm-scope .tm-picker__button:focus-visible,
body .tm-scope .tm-picker.is-open .tm-picker__button {
	border-color: var(--tm-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tm-primary) 22%, transparent);
	outline: none;
}

body .tm-scope .tm-picker__current {
	align-items: center;
	display: flex;
	flex: 1;
	gap: 0.75rem;
	min-width: 0;
}

body .tm-scope .tm-picker__chevron {
	color: var(--tm-grey);
	display: flex;
	flex-shrink: 0;
	transition: transform 0.2s;
}

body .tm-scope .tm-picker__chevron svg {
	height: 20px;
	width: 20px;
}

body .tm-scope .tm-picker.is-open .tm-picker__chevron {
	transform: rotate(180deg);
}

body .tm-scope .tm-picker__avatar {
	align-items: center;
	background: var(--tm-primary-soft);
	border-radius: 50%;
	color: var(--tm-primary);
	display: flex;
	flex-shrink: 0;
	font-size: 1rem;
	font-weight: 700;
	height: 40px;
	justify-content: center;
	overflow: hidden;
	width: 40px;
}

body .tm-scope .tm-picker__avatar img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

body .tm-scope .tm-picker__avatar svg {
	height: 20px;
	width: 20px;
}

body .tm-scope .tm-picker__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

body .tm-scope .tm-picker__text strong,
body .tm-scope .tm-picker__text small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-picker__text strong {
	color: var(--tm-dark);
	font-size: 0.95rem;
	font-weight: 600;
}

body .tm-scope .tm-picker__text small {
	color: var(--tm-grey);
	font-size: 0.78rem;
	margin-top: 0.1rem;
}

body .tm-scope .tm-picker__list {
	background: #fff;
	border: 1px solid #E6E2DC;
	border-radius: var(--tm-radius);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12);
	left: 0;
	list-style: none;
	margin: 0;
	max-height: 320px;
	overflow-y: auto;
	padding: 0.35rem;
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	z-index: 40;
}

body .tm-scope .tm-picker__list[hidden] {
	display: none;
}

body .tm-scope .tm-picker__option {
	align-items: center;
	border-radius: calc(var(--tm-radius) - 4px);
	cursor: pointer;
	display: flex;
	gap: 0.75rem;
	margin: 0;
	outline: none;
	padding: 0.5rem 0.6rem;
}

body .tm-scope .tm-picker__option:hover,
body .tm-scope .tm-picker__option:focus {
	background: var(--tm-offwhite, #F7F5F2);
}

body .tm-scope .tm-picker__option.is-selected {
	background: var(--tm-primary-soft);
}

body .tm-scope .tm-picker__option.is-selected::after {
	background-color: var(--tm-primary);
	content: "";
	flex-shrink: 0;
	height: 18px;
	margin-left: auto;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 18px;
}

body .tm-scope .tm-picker__option.is-selected strong {
	color: var(--tm-primary);
}

/* Time dropdown: one column of 24-hour times ("Request a session") */

body .tm-scope .tm-time {
	position: relative;
}

body .tm-scope .tm-time:not(.is-ready) .tm-time__button,
body .tm-scope .tm-time:not(.is-ready) .tm-time__panel {
	display: none;
}

/* Hidden but still focusable, so the browser can point at it when the form is invalid. */
body .tm-scope .tm-time.is-ready input[type="time"] {
	border: 0;
	bottom: 0;
	height: 1px;
	left: 50%;
	opacity: 0;
	padding: 0;
	pointer-events: none;
	position: absolute;
	width: 1px;
}

body .tm-scope .tm-time__button {
	align-items: center;
	background: #fff;
	border: 1px solid var(--tm-grey);
	border-radius: var(--tm-radius);
	box-shadow: none;
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	gap: 0.5rem;
	justify-content: space-between;
	letter-spacing: normal;
	line-height: 1.4;
	padding: 0.8rem 1rem;
	text-align: left;
	text-transform: none;
	transition: border-color 0.15s, box-shadow 0.15s;
	width: 100%;
}

body .tm-scope .tm-time__button:hover,
body .tm-scope .tm-time__button:focus {
	background: #fff;
	color: var(--tm-dark);
}

body .tm-scope .tm-time__button:hover {
	border-color: var(--tm-primary);
}

body .tm-scope .tm-time__button:focus-visible,
body .tm-scope .tm-time.is-open .tm-time__button {
	border-color: var(--tm-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tm-primary) 22%, transparent);
	outline: none;
}

body .tm-scope .tm-time__value {
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.04em;
}

body .tm-scope .tm-time__value.is-empty {
	color: var(--tm-grey);
}

body .tm-scope .tm-time__icon {
	color: var(--tm-dark);
	display: flex;
}

body .tm-scope .tm-time__icon svg {
	height: 20px;
	width: 20px;
}

body .tm-scope .tm-time__panel {
	background: #fff;
	border: 1px solid #E6E2DC;
	border-radius: var(--tm-radius);
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12);
	left: 0;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	z-index: 40;
}

body .tm-scope .tm-time__panel[hidden] {
	display: none;
}

body .tm-scope .tm-time__list {
	list-style: none;
	margin: 0;
	max-height: 264px;
	overflow-y: auto;
	padding: 0.35rem;
	position: relative;
	scrollbar-width: thin;
}

body .tm-scope .tm-time__option {
	border-radius: calc(var(--tm-radius) - 4px);
	color: var(--tm-dark);
	cursor: pointer;
	font-size: 0.95rem;
	font-variant-numeric: tabular-nums;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.2;
	margin: 0;
	outline: none;
	padding: 0.6rem 0.85rem;
}

body .tm-scope .tm-time__option[hidden] {
	display: none;
}

body .tm-scope .tm-time__option:hover,
body .tm-scope .tm-time__option:focus {
	background: var(--tm-offwhite);
}

body .tm-scope .tm-time__option.is-selected {
	background: var(--tm-primary-soft);
	color: var(--tm-primary);
	font-weight: 700;
}

body .tm-scope .tm-time__empty {
	color: var(--tm-grey);
	font-size: 0.85rem;
	margin: 0;
	padding: 0.85rem 1rem;
}

/* Info box (matches the "i" notes in the source design) */

body .tm-scope .tm-info {
	align-items: flex-start;
	background: var(--tm-primary-soft);
	border-radius: var(--tm-radius);
	color: var(--tm-dark);
	display: flex;
	gap: 0.9rem;
	margin: 0.5rem 0 1.25rem;
	padding: 1rem 1.2rem;
}

body .tm-scope .tm-info .tm-svg {
	color: var(--tm-primary);
	margin-top: 2px;
}

body .tm-scope .tm-info .tm-svg svg {
	height: 26px;
	width: 26px;
}

body .tm-scope .tm-info p {
	font-size: 14px;
	margin: 0;
}

body .tm-scope .tm-option__text {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

body .tm-scope .tm-option__desc {
	font-size: 12px;
	line-height: 1.45;
	opacity: 0.75;
}

body .tm-scope .tm-safety {
	background: var(--tm-offwhite);
	border: 1px solid var(--tm-border);
	border-left: 4px solid var(--tm-error);
	border-radius: var(--tm-radius);
	margin: 0.5rem 0 1.25rem;
	padding: 1rem 1.2rem;
}

body .tm-scope .tm-safety[hidden] {
	display: none;
}

body .tm-scope .tm-safety__kicker {
	color: var(--tm-error);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 0.35rem;
	text-transform: uppercase;
}

body .tm-scope .tm-safety__title {
	font-weight: 700;
	margin: 0 0 0.6rem;
}

body .tm-scope .tm-safety p {
	font-size: 14px;
	margin: 0 0 0.55rem;
}

body .tm-scope .tm-safety p:last-child {
	margin-bottom: 0;
}

body .tm-scope .tm-safety a {
	color: var(--tm-dark);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body .tm-scope.tm-assessment p {
	font-size: 14px;
}

body .tm-scope .tm-error {
	color: var(--tm-error);
	font-size: 0.9rem;
	font-weight: 600;
	margin: 0 0 1rem;
	min-height: 0;
}

body .tm-scope .tm-error:empty {
	display: none;
}

body .tm-scope .tm-question__nav {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: flex-end;
	margin-top: 1.5rem;
}

/* --------------------------------------------------------------------------
   Registration / payment
   -------------------------------------------------------------------------- */

body .tm-scope .tm-register__title {
	font-size: 1.5rem;
	font-weight: 400;
	margin-bottom: 1.5rem;
	outline: none;
	text-align: center;
}

body .tm-scope .tm-benefits {
	background: var(--tm-secondary-soft);
	border-radius: var(--tm-radius);
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
}

body .tm-scope .tm-benefits li {
	align-items: center;
	display: flex;
	gap: 0.6rem;
	margin: 0.3rem 0;
}

body .tm-scope .tm-benefits .tm-svg {
	color: var(--tm-olive);
}

body .tm-scope .tm-field {
	margin-bottom: 1rem;
}

body .tm-scope .tm-field__msg {
	color: var(--tm-grey);
	font-size: 0.8rem;
	margin: 0.3rem 0 0;
	min-height: 0;
}

body .tm-scope .tm-field__msg:empty {
	display: none;
}

body .tm-scope .tm-float {
	position: relative;
}

body .tm-scope .tm-float input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
	min-height: 56px;
	padding: 1.4rem 1rem 0.45rem;
}

body .tm-scope .tm-float label {
	color: var(--tm-grey);
	font-size: 1rem;
	left: 1rem;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: font-size 0.15s, top 0.15s, transform 0.15s;
}

body .tm-scope .tm-float input:focus + label,
body .tm-scope .tm-float input:not(:placeholder-shown) + label {
	font-size: 0.75rem;
	top: 0.5rem;
	transform: none;
}

body .tm-scope .tm-float__toggle,
body .tm-scope .tm-float__toggle:hover,
body .tm-scope .tm-float__toggle:focus {
	align-items: center;
	background: none;
	border: 0;
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	height: 40px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
}

body .tm-scope .tm-float__toggle .tm-svg svg {
	height: 22px;
	width: 22px;
}

body .tm-scope .tm-field.has-error input:not([type="checkbox"]):not([type="radio"]) {
	border-color: var(--tm-error);
}

body .tm-scope .tm-field.has-error .tm-float label,
body .tm-scope .tm-field.has-error .tm-field__msg {
	color: var(--tm-error);
}

body .tm-scope .tm-check {
	align-items: flex-start;
	cursor: pointer;
	display: flex;
	gap: 0.75rem;
	margin: 0.5rem 0 1rem;
}

body .tm-scope .tm-check input {
	accent-color: var(--tm-olive);
	flex-shrink: 0;
	height: 22px;
	margin: 0;
	width: 22px;
}

body .tm-scope .tm-check a {
	color: var(--tm-olive);
	font-weight: 700;
}

body .tm-scope .tm-field.has-error .tm-check input {
	outline: 2px solid var(--tm-error);
}

body .tm-scope .tm-before {
	border-top: 1px solid var(--tm-border);
	margin: 0.5rem 0 1.25rem;
	padding-top: 1rem;
}

body .tm-scope .tm-before__title {
	font-weight: 700;
	margin: 0 0 0.4rem;
}

body .tm-scope .tm-before ul {
	color: var(--tm-grey);
	font-size: 0.9rem;
	margin: 0;
	padding-left: 1.2rem;
}

/* After sign-up: terms, verification, focus areas, follow-ups, welcome and pricing */

body .tm-scope .tm-onb p {
	margin: 0 0 0.75rem;
}

body .tm-scope .tm-onb [hidden] {
	display: none !important;
}

body .tm-scope .tm-onb__list,
body .tm-scope .tm-onb__steps,
body .tm-scope .tm-onb__docs,
body .tm-scope .tm-onb__summary ul {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

body .tm-scope .tm-onb__list li,
body .tm-scope .tm-onb__steps li,
body .tm-scope .tm-onb__summary li {
	margin: 0.25rem 0;
}

body .tm-scope .tm-onb__sections {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	margin: 0 0 1rem;
}

body .tm-scope .tm-onb__section {
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	padding: 0.9rem 1rem;
}

body .tm-scope .tm-onb__section-title {
	font-weight: 700;
}

body .tm-scope .tm-onb a,
body .tm-scope .tm-onb .tm-link-btn {
	color: var(--tm-olive);
	font-weight: 700;
	text-underline-offset: 3px;
}

body .tm-scope .tm-onb__email-shown {
	font-size: 1.05rem;
}

body .tm-scope .tm-onb__code,
body .tm-scope .tm-onb__email {
	display: grid;
	gap: 0.6rem;
	margin: 0 0 1rem;
}

body .tm-scope .tm-onb input.tm-code {
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: 0.6em;
	max-width: 12rem;
	padding-left: 1rem;
	text-align: center;
}

body .tm-scope .tm-onb__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
}

body .tm-scope .tm-onb__icon .tm-svg svg {
	color: var(--tm-olive);
	height: 36px;
	width: 36px;
}

body .tm-scope .tm-onb__lead,
body .tm-scope .tm-onb__intro {
	color: var(--tm-grey);
}

body .tm-scope .tm-onb__label {
	font-weight: 700;
	margin-bottom: 0.4rem;
}

body .tm-scope .tm-onb textarea {
	width: 100%;
}

body .tm-scope .tm-onb__count {
	color: var(--tm-grey);
	font-size: 0.85rem;
	margin-top: 0.35rem;
	text-align: right;
}

body .tm-scope .tm-onb__heading {
	color: var(--tm-olive);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body .tm-scope .tm-onb__welcome,
body .tm-scope .tm-onb__sub,
body .tm-scope .tm-onb__subtitle {
	font-weight: 700;
}

body .tm-scope .tm-onb__subtitle {
	font-size: 1.05rem;
	margin: 0 0 0.5rem;
}

body .tm-scope .tm-onb__type {
	margin: 0.25rem 0 0.75rem;
}

body .tm-scope .tm-onb__summary {
	background: var(--tm-offwhite);
	border-radius: var(--tm-radius);
	margin: 0 0 1rem;
	padding: 1rem 1.2rem;
}

body .tm-scope .tm-onb__block {
	border-top: 1px solid var(--tm-border);
	padding: 1rem 0 0.25rem;
}

body .tm-scope .tm-onb__stats {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin-bottom: 0.75rem;
}

body .tm-scope .tm-onb__stat {
	background: var(--tm-secondary-soft);
	border-radius: var(--tm-radius);
	padding: 0.9rem 1rem;
}

body .tm-scope .tm-onb__stat strong {
	display: block;
	font-size: 1.6rem;
}

body .tm-scope .tm-price {
	background: var(--tm-offwhite);
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	margin: 1rem 0;
	padding: 1rem 1.2rem;
}

body .tm-scope .tm-price__line {
	font-weight: 700;
}

body .tm-scope .tm-price__was {
	color: var(--tm-grey);
	font-weight: 400;
}

body .tm-scope .tm-price__charge {
	font-weight: 700;
}

body .tm-scope .tm-price-table {
	border-collapse: collapse;
	font-size: 0.9rem;
	margin: 0 0 1rem;
	width: 100%;
}

body .tm-scope .tm-price-table caption {
	display: grid;
	gap: 0.2rem;
	margin-bottom: 0.5rem;
	text-align: left;
}

body .tm-scope .tm-price-table caption span {
	color: var(--tm-grey);
	font-size: 0.8rem;
}

body .tm-scope .tm-price-table th,
body .tm-scope .tm-price-table td {
	border-bottom: 1px solid var(--tm-border);
	padding: 0.5rem 0.4rem;
	text-align: left;
}

body .tm-scope .tm-price-table td:last-child,
body .tm-scope .tm-price-table th:last-child {
	text-align: right;
}

body .tm-scope .tm-pay-summary__row {
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.35rem 0;
}

body .tm-scope .tm-pay-summary__row.is-total {
	border-top: 1px solid var(--tm-border);
	font-size: 1.05rem;
	margin-top: 0.25rem;
	padding-top: 0.6rem;
}

body .tm-scope .tm-aid__q {
	border: 0;
	margin: 0 0 1.1rem;
	padding: 0;
}

body .tm-scope .tm-aid__q legend,
body .tm-scope .tm-aid__q > label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.5rem;
}

body .tm-scope .tm-aid__number {
	align-items: center;
	display: flex;
	gap: 0.6rem;
}

body .tm-scope .tm-aid__number input {
	max-width: 12rem;
}

body .tm-scope.tm-2fa .tm-2fa__form {
	display: grid;
	gap: 0.75rem;
}

body .tm-scope .tm-register__login {
	color: var(--tm-grey);
	font-size: 0.9rem;
	margin: 1rem 0 0;
	text-align: center;
}

body .tm-scope .tm-form-status:empty {
	display: none;
}

body .tm-scope .tm-payment__summary {
	align-items: center;
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin: 1.25rem 0;
	padding: 1.1rem 1.25rem;
}

body .tm-scope .tm-payment__summary p {
	color: var(--tm-grey);
	font-size: 0.875rem;
	margin: 0.25rem 0 0;
}

body .tm-scope .tm-payment__amount {
	color: var(--tm-dark);
	font-size: 1.4rem;
	font-weight: 700;
	white-space: nowrap;
}

body .tm-scope .tm-payment__heading {
	color: var(--tm-dark);
	font-size: 1.05rem;
	font-weight: 600;
	margin: 1.5rem 0 0.75rem;
}

body .tm-scope .tm-payment__element {
	margin-bottom: 1.25rem;
	min-height: 120px;
}

body .tm-scope .tm-payment__loading {
	align-items: center;
	border: 1px dashed var(--tm-border);
	border-radius: var(--tm-radius);
	color: var(--tm-grey);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	justify-content: center;
	min-height: 120px;
	padding: 1.25rem;
	text-align: center;
}

body .tm-scope .tm-payment__loading p {
	margin: 0;
}

body .tm-scope .tm-payment__secure {
	align-items: center;
	color: var(--tm-grey);
	display: flex;
	font-size: 0.8125rem;
	gap: 0.4rem;
	justify-content: center;
	margin: 0.9rem 0 0;
	text-align: center;
}

body .tm-scope .tm-result {
	background: var(--tm-primary-softer);
	border-radius: var(--tm-radius);
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
}

body .tm-scope .tm-result h3 {
	font-size: 1rem;
	margin-bottom: 0.25rem;
}

body .tm-scope .tm-result p {
	margin: 0;
}

/* --------------------------------------------------------------------------
   Login form (wp_login_form)
   -------------------------------------------------------------------------- */

body .tm-scope .tm-login form p {
	margin-bottom: 1rem;
}

body .tm-scope .tm-login label {
	font-weight: 600;
	margin-bottom: 0.35rem;
}

body .tm-scope .tm-login .login-remember label {
	align-items: center;
	display: flex;
	font-weight: 400;
	gap: 0.5rem;
}

body .tm-scope .tm-login input[type="submit"] {
	background: var(--tm-secondary);
	border: 2px solid var(--tm-secondary);
	border-radius: var(--tm-pill);
	color: var(--tm-dark);
	cursor: pointer;
	font-weight: 600;
	min-height: 48px;
	width: 100%;
}

body .tm-scope .tm-login input[type="submit"]:hover,
body .tm-scope .tm-login input[type="submit"]:focus {
	background: var(--tm-olive);
	border-color: var(--tm-olive);
	color: #fff;
}

body .tm-scope .tm-login__links {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.9rem;
	gap: 0.5rem;
	justify-content: center;
	margin: 0.5rem 0 0;
}

body .tm-scope.tm-dashboard-login {
	align-items: center;
	background: var(--tm-offwhite);
	display: flex;
	justify-content: center;
	min-height: 100vh;
	min-height: 100dvh;
	padding: 3rem 1.25rem;
}

/* --------------------------------------------------------------------------
   App canvas (client dashboard page – no site header/footer)
   -------------------------------------------------------------------------- */

html:has(body.tm-app-body) {
	background: var(--tm-offwhite);
	height: 100%;
}

body.tm-app-body {
	background: var(--tm-offwhite);
	margin: 0;
	min-height: 100%;
	padding: 0;
}

body.tm-app-body .tm-app {
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

/* --------------------------------------------------------------------------
   Client dashboard
   -------------------------------------------------------------------------- */

body .tm-scope.tm-dashboard {
	--tm-vh: 100vh;
	--tm-sidebar-w: 260px;
	background: var(--tm-offwhite);
	display: grid;
	grid-template-columns: var(--tm-sidebar-w) minmax(0, 1fr);
	height: var(--tm-vh);
	margin: 0;
	overflow: hidden;
	width: 100%;
}

@supports (height: 100dvh) {
	body .tm-scope.tm-dashboard {
		--tm-vh: 100dvh;
	}
}

body.admin-bar .tm-scope.tm-dashboard {
	height: calc(var(--tm-vh) - 32px);
}

@media (max-width: 782px) {
	body.admin-bar .tm-scope.tm-dashboard {
		height: calc(var(--tm-vh) - 46px);
	}
}

/* Sidebar */

body .tm-scope .tm-dashboard__sidebar {
	background: var(--tm-dark);
	color: rgba(255, 255, 255, 0.82);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow-y: auto;
	padding: 1.25rem 1rem;
	scrollbar-width: thin;
}

body .tm-scope .tm-dashboard__brand {
	align-items: center;
	border-radius: var(--tm-radius);
	color: #fff;
	display: flex;
	gap: 0.75rem;
	margin-bottom: 1.75rem;
	padding: 0.35rem 0.4rem;
	position: relative;
	text-decoration: none;
}

body .tm-scope .tm-dashboard__brand::after {
	background: rgba(255, 255, 255, 0.08);
	bottom: -0.9rem;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
}

body .tm-scope .tm-dashboard__brand-logo {
	display: block;
	height: auto;
	max-width: 100%;
	width: 100px;
}

body .tm-scope .tm-avatar {
	align-items: center;
	background: var(--tm-primary);
	border-radius: 50%;
	color: #fff;
	display: flex;
	flex-shrink: 0;
	font-size: 1.1rem;
	font-weight: 700;
	height: 44px;
	justify-content: center;
	width: 44px;
}

body .tm-scope .tm-avatar--sm {
	font-size: 0.85rem;
	height: 32px;
	width: 32px;
}

body .tm-scope .tm-avatar--xl {
	font-size: 2.25rem;
	height: 96px;
	width: 96px;
}

body .tm-scope .tm-avatar.has-image {
	background: var(--tm-tan);
	overflow: hidden;
}

body .tm-scope .tm-avatar img {
	border-radius: 50%;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

body .tm-scope .tm-avatar--team {
	background: var(--tm-primary-soft);
	color: var(--tm-primary);
}

body .tm-scope .tm-avatar--team svg {
	height: 18px;
	width: 18px;
}

/* Photo and name together, e.g. the therapist in appointment tables */

body .tm-scope .tm-person {
	align-items: center;
	display: inline-flex;
	gap: 0.6rem;
	max-width: 100%;
	min-width: 0;
	text-align: left;
	vertical-align: middle;
}

body .tm-scope .tm-person__name {
	color: var(--tm-dark);
	font-weight: 600;
	line-height: 1.3;
	min-width: 0;
	overflow-wrap: break-word;
}

/* Profile photo */

body .tm-scope .tm-photo__form {
	align-items: center;
	display: flex;
	gap: 1.5rem;
}

body .tm-scope .tm-photo__input {
	height: 1px;
	opacity: 0;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

body .tm-scope .tm-photo__preview {
	border-radius: 50%;
	cursor: pointer;
	flex-shrink: 0;
	margin: 0;
	position: relative;
}

body .tm-scope .tm-photo__preview::after {
	border: 2px dashed transparent;
	border-radius: 50%;
	content: "";
	inset: -6px;
	position: absolute;
	transition: border-color 0.15s ease;
}

body .tm-scope .tm-photo__preview.is-dragover::after,
body .tm-scope .tm-photo.is-pending .tm-photo__preview::after {
	border-color: var(--tm-olive);
}

body .tm-scope .tm-photo__input:focus-visible + .tm-photo__preview {
	outline: 2px solid var(--tm-olive);
	outline-offset: 4px;
}

body .tm-scope .tm-photo__overlay {
	align-items: center;
	background: rgba(46, 59, 54, 0.55);
	border-radius: 50%;
	color: #fff;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	position: absolute;
	transition: opacity 0.15s ease;
}

body .tm-scope .tm-photo__overlay .tm-icon {
	height: 28px;
	width: 28px;
}

body .tm-scope .tm-photo__preview:hover .tm-photo__overlay,
body .tm-scope .tm-photo__preview.is-dragover .tm-photo__overlay,
body .tm-scope .tm-photo__input:focus-visible + .tm-photo__preview .tm-photo__overlay {
	opacity: 1;
}

body .tm-scope .tm-photo__body {
	flex: 1;
	min-width: 0;
}

body .tm-scope .tm-photo__body .tm-card__title {
	margin-bottom: 0.25rem;
}

body .tm-scope .tm-photo__body .tm-help {
	margin: 0 0 0.75rem;
	overflow-wrap: anywhere;
}

body .tm-scope .tm-photo__error {
	color: #B42318;
	font-size: 0.875rem;
	margin: -0.25rem 0 0.75rem;
}

body .tm-scope .tm-photo__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

body .tm-scope .tm-photo__actions label.tm-btn {
	cursor: pointer;
	margin: 0;
}

body .tm-scope .tm-photo__actions [hidden],
body .tm-scope .tm-photo__error[hidden] {
	display: none;
}

@media (max-width: 520px) {
	body .tm-scope .tm-photo__form {
		align-items: flex-start;
		flex-direction: column;
		gap: 1rem;
	}
}

body .tm-scope .tm-dashboard__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

body .tm-scope .tm-dashboard__nav a,
body .tm-scope .tm-dashboard__logout {
	align-items: center;
	border-radius: var(--tm-radius);
	color: rgba(255, 255, 255, 0.78);
	display: flex;
	font-size: 0.92rem;
	font-weight: 500;
	gap: 0.75rem;
	margin-bottom: 4px;
	padding: 0.7rem 0.85rem;
	text-decoration: none;
	transition: background-color 0.15s, color 0.15s;
}

body .tm-scope .tm-dashboard__nav a:hover,
body .tm-scope .tm-dashboard__nav a:focus-visible,
body .tm-scope .tm-dashboard__logout:hover,
body .tm-scope .tm-dashboard__logout:focus-visible {
	background: rgba(255, 255, 255, 0.07);
	color: #fff;
}

body .tm-scope .tm-dashboard__nav a.is-active {
	background: var(--tm-primary);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
	color: #fff;
}

body .tm-scope .tm-dashboard__nav .tm-icon,
body .tm-scope .tm-dashboard__logout .tm-icon {
	flex-shrink: 0;
	height: 18px;
	width: 18px;
}

body .tm-scope .tm-dashboard__logout {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 0;
	margin: auto 0 0;
	padding-top: 1.1rem;
}

body .tm-scope .tm-badge {
	background: var(--tm-rose);
	border-radius: var(--tm-pill);
	color: #fff;
	font-size: 0.72rem;
	font-style: normal;
	font-weight: 700;
	margin-left: auto;
	min-width: 22px;
	padding: 0.1rem 0.45rem;
	text-align: center;
}

/* Main column */

body .tm-scope .tm-dashboard__main {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	overflow-y: auto;
	scrollbar-width: thin;
}

body .tm-scope .tm-dashboard__topbar {
	align-items: center;
	background: color-mix(in srgb, var(--tm-offwhite) 88%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid color-mix(in srgb, var(--tm-tan) 45%, transparent);
	display: flex;
	gap: 1rem;
	padding: 1rem clamp(1rem, 2.5vw, 2rem);
	position: sticky;
	top: 0;
	z-index: 5;
}

body .tm-scope .tm-dashboard__title {
	flex: 1;
	font-size: clamp(1.25rem, 2.2vw, 1.6rem);
	font-weight: 600;
	margin: 0;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-dashboard__tools {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 0.6rem;
}

body .tm-scope .tm-icon-btn {
	align-items: center;
	background: #fff;
	border: 1px solid #E6E1D9;
	border-radius: 50%;
	color: var(--tm-dark);
	display: inline-flex;
	height: 40px;
	justify-content: center;
	position: relative;
	text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
	width: 40px;
}

body .tm-scope .tm-icon-btn:hover,
body .tm-scope .tm-icon-btn:focus-visible {
	border-color: var(--tm-primary);
	color: var(--tm-primary);
}

body .tm-scope .tm-icon-btn .tm-icon {
	height: 18px;
	width: 18px;
}

body .tm-scope .tm-icon-btn__count {
	align-items: center;
	background: var(--tm-rose);
	border: 2px solid #fff;
	border-radius: 100%;
	box-sizing: border-box;
	color: #fff;
	display: flex;
	font-size: 0.65rem;
	font-weight: 700;
	height: 20px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: -6px;
	top: -6px;
	width: 20px;
}

body .tm-scope .tm-icon-btn__count[hidden] {
	display: none;
}

/* Notifications menu */

body .tm-scope .tm-notify {
	position: relative;
}

body .tm-scope .tm-notify > summary {
	cursor: pointer;
	list-style: none;
}

body .tm-scope .tm-notify > summary::-webkit-details-marker {
	display: none;
}

body .tm-scope .tm-notify[open] > summary {
	border-color: var(--tm-primary);
	color: var(--tm-primary);
}

body .tm-scope .tm-notify__panel {
	background: #fff;
	border: 1px solid #E6E1D9;
	border-radius: var(--tm-radius);
	box-shadow: 0 18px 40px rgba(46, 59, 54, 0.16);
	overflow: hidden;
	position: absolute;
	right: 0;
	top: calc(100% + 10px);
	width: 360px;
	z-index: 20;
}

body .tm-scope .tm-notify__head {
	align-items: center;
	border-bottom: 1px solid #F0ECE6;
	display: flex;
	justify-content: space-between;
	padding: 0.9rem 1.1rem;
}

body .tm-scope .tm-notify__head strong {
	color: var(--tm-dark);
	font-size: 0.98rem;
}

body .tm-scope .tm-notify__head .tm-link-btn {
	font-size: 0.8rem;
}

body .tm-scope .tm-notify__head .tm-link-btn[hidden] {
	display: none;
}

body .tm-scope .tm-notify__list {
	list-style: none;
	margin: 0;
	max-height: min(420px, 65vh);
	overflow-y: auto;
	padding: 0;
	scrollbar-width: thin;
}

body .tm-scope .tm-notify__empty {
	color: var(--tm-grey);
	font-size: 0.85rem;
	margin: 0;
	padding: 1.25rem 1rem;
	text-align: center;
}

body .tm-scope .tm-notify__list li + li {
	border-top: 1px solid #F4F1EC;
}

body .tm-scope .tm-notify__item {
	color: var(--tm-text);
	display: flex;
	gap: 0.75rem;
	padding: 0.85rem 1.1rem;
	position: relative;
	text-decoration: none;
	transition: background 0.15s;
}

body .tm-scope .tm-notify__item:hover,
body .tm-scope .tm-notify__item:focus-visible {
	background: var(--tm-offwhite);
	color: var(--tm-text);
}

body .tm-scope .tm-notify__item.is-unread {
	background: color-mix(in srgb, var(--tm-secondary) 9%, #fff);
}

body .tm-scope .tm-notify__item.is-unread::after {
	background: var(--tm-rose);
	border-radius: 50%;
	content: "";
	height: 8px;
	position: absolute;
	right: 1.1rem;
	top: 1.15rem;
	width: 8px;
}

body .tm-scope .tm-notify__icon {
	align-items: center;
	background: color-mix(in srgb, var(--tm-primary) 10%, #fff);
	border-radius: 50%;
	color: var(--tm-primary);
	display: inline-flex;
	flex-shrink: 0;
	height: 36px;
	justify-content: center;
	width: 36px;
}

body .tm-scope .tm-notify__icon .tm-icon {
	height: 17px;
	width: 17px;
}

body .tm-scope .tm-notify__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
	padding-right: 0.9rem;
}

body .tm-scope .tm-notify__body strong {
	color: var(--tm-dark);
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.35;
}

body .tm-scope .tm-notify__body span {
	font-size: 0.82rem;
	line-height: 1.45;
}

body .tm-scope .tm-notify__body small {
	color: #A09A92;
	font-size: 0.74rem;
}

body .tm-scope .tm-user-chip {
	align-items: center;
	background: #fff;
	border: 1px solid #E6E1D9;
	border-radius: var(--tm-pill);
	color: var(--tm-dark);
	display: inline-flex;
	gap: 0.55rem;
	max-width: 220px;
	padding: 4px 14px 4px 4px;
	text-decoration: none;
	transition: border-color 0.15s;
}

body .tm-scope .tm-user-chip:hover,
body .tm-scope .tm-user-chip:focus-visible {
	border-color: var(--tm-primary);
	color: var(--tm-dark);
}

body .tm-scope .tm-user-chip__name {
	font-size: 0.88rem;
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-dashboard__content {
	flex: 1;
	padding: clamp(1rem, 2.5vw, 2rem);
	transition: opacity 0.2s ease;
}

body .tm-scope .tm-dashboard__title:focus {
	outline: none;
}

/* Tab switching */

body .tm-scope .tm-dashboard__topbar::after {
	background: linear-gradient(90deg, var(--tm-olive), var(--tm-secondary), var(--tm-primary));
	bottom: -1px;
	content: "";
	height: 2px;
	left: 0;
	opacity: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left;
	width: 100%;
}

body .tm-scope .tm-dashboard.is-loading .tm-dashboard__topbar::after {
	animation: tm-tab-progress 1.2s cubic-bezier(0.2, 0.7, 0.3, 1) forwards;
	opacity: 1;
}

body .tm-scope .tm-dashboard.is-loading .tm-dashboard__content {
	opacity: 0.55;
	pointer-events: none;
}

@keyframes tm-tab-progress {
	from { transform: scaleX(0); }
	to { transform: scaleX(0.85); }
}

@media (prefers-reduced-motion: reduce) {
	body .tm-scope .tm-dashboard.is-loading .tm-dashboard__topbar::after {
		animation: none;
		transform: scaleX(0.6);
	}
}

body .tm-scope .tm-dashboard__menu-btn {
	align-items: center;
	background: #fff;
	border: 1px solid #E6E1D9;
	border-radius: 10px;
	color: var(--tm-dark);
	cursor: pointer;
	display: none;
	flex-shrink: 0;
	height: 40px;
	justify-content: center;
	padding: 0;
	width: 40px;
}

body .tm-scope .tm-dashboard__menu-btn:hover,
body .tm-scope .tm-dashboard__menu-btn:focus {
	background: #fff;
	border-color: var(--tm-primary);
	color: var(--tm-primary);
}

body .tm-scope .tm-dashboard__backdrop {
	background: rgba(46, 59, 54, 0.45);
	inset: 0;
	position: fixed;
	z-index: 40;
}

body .tm-scope .tm-welcome h2 {
	font-size: 1.4rem;
	font-weight: 500;
	margin-bottom: 0.25rem;
}

body .tm-scope .tm-welcome p {
	color: var(--tm-grey);
}

body .tm-scope .tm-stats {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
	margin-bottom: 1.5rem;
}

body .tm-scope .tm-stat {
	background: #fff;
	border-radius: var(--tm-radius);
	box-shadow: var(--tm-shadow);
	color: var(--tm-dark);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1.25rem;
	text-decoration: none;
	transition: transform 0.15s;
}

body .tm-scope a.tm-stat:hover {
	color: var(--tm-dark);
	transform: translateY(-2px);
}

body .tm-scope .tm-stat__icon {
	align-items: center;
	background: var(--tm-secondary-soft);
	border-radius: 10px;
	color: var(--tm-olive);
	display: flex;
	height: 40px;
	justify-content: center;
	margin-bottom: 0.5rem;
	width: 40px;
}

body .tm-scope .tm-stat__label {
	color: var(--tm-grey);
	font-size: 0.85rem;
}

body .tm-scope .tm-stat__value {
	font-size: 1.05rem;
}

body .tm-scope .tm-grid-2 {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .tm-scope .tm-grid-2--wide-left {
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
}

body .tm-scope .tm-grid-2 > .tm-card {
	margin-bottom: 0;
}

body .tm-scope .tm-score__head {
	align-items: baseline;
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.5rem;
}

body .tm-scope .tm-score__bar {
	background: #EEE;
	border-radius: var(--tm-pill);
	height: 10px;
	overflow: hidden;
}

body .tm-scope .tm-score__bar span {
	background: linear-gradient(90deg, var(--tm-secondary), var(--tm-rose));
	border-radius: var(--tm-pill);
	display: block;
	height: 100%;
}

body .tm-scope .tm-score__severity {
	color: var(--tm-primary);
	font-weight: 700;
	margin: 0.5rem 0 1rem;
}

/* Tables */

body .tm-scope .tm-table {
	border-collapse: collapse;
	font-size: 0.95rem;
	margin: 0 0 1rem;
	width: 100%;
}

body .tm-scope .tm-table th {
	border-bottom: 2px solid #EEE;
	color: var(--tm-grey);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 0.6rem 0.75rem;
	text-align: left;
	text-transform: uppercase;
}

body .tm-scope .tm-table td {
	border-bottom: 1px solid #F0F0F0;
	padding: 0.85rem 0.75rem;
	vertical-align: middle;
}

body .tm-scope .tm-table__actions {
	text-align: right;
}

body .tm-scope .tm-inline-form {
	display: inline;
	margin: 0;
}

body .tm-scope .tm-status {
	border-radius: var(--tm-pill);
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 700;
	padding: 0.2rem 0.7rem;
}

body .tm-scope .tm-status--pending { background: color-mix(in srgb, var(--tm-tan) 55%, #fff); color: #6B4F2E; }
body .tm-scope .tm-status--confirmed,
body .tm-scope .tm-status--completed { background: var(--tm-secondary-soft); color: var(--tm-olive); }
body .tm-scope .tm-status--cancelled,
body .tm-scope .tm-status--failed { background: #F3E6EA; color: var(--tm-rose); }

/* Forms in dashboard */

body .tm-scope .tm-form .tm-field label {
	font-size: 0.9rem;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

body .tm-scope .tm-form .tm-field input::placeholder,
body .tm-scope .tm-form .tm-field textarea::placeholder {
	color: #A9A9A9;
	opacity: 1;
}

body .tm-scope .tm-form .tm-field input:disabled {
	background: var(--tm-offwhite);
	color: var(--tm-grey);
	cursor: not-allowed;
	opacity: 1;
}

body .tm-scope .tm-field-row {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

body .tm-scope .tm-form .tm-check {
	font-size: 0.95rem;
}

/* Messages */

body .tm-scope .tm-card.tm-inbox {
	--tm-chat-theirs: #F0EDE8;
	--tm-chat-mine: linear-gradient(135deg, var(--tm-primary) 0%, color-mix(in srgb, var(--tm-primary) 55%, var(--tm-rose)) 100%);
	display: grid;
	grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
	height: 70vh;
	margin-bottom: 0;
	min-height: 460px;
	overflow: hidden;
	padding: 0;
}

/* Fill the screen like a messenger app; the lists and thread scroll, not the page. */
body .tm-scope .tm-dashboard__content:has(> .tm-inbox) {
	display: flex;
	flex-direction: column;
	min-height: 0;
}

body .tm-scope .tm-dashboard__content:has(> .tm-inbox) > .tm-inbox {
	flex: 1 1 0;
	height: auto;
}

body .tm-scope .tm-inbox__list {
	border-right: 1px solid #EFEBE5;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

body .tm-scope .tm-inbox__list-head {
	padding: 1.25rem 1.25rem 0.75rem;
}

body .tm-scope .tm-inbox__list-head h2 {
	color: var(--tm-dark);
	font-size: 1.35rem;
	margin: 0;
}

body .tm-scope .tm-inbox__items {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 0 0.6rem 0.75rem;
	scrollbar-width: thin;
}

body .tm-scope .tm-inbox__items ul {
	display: flex;
	flex-direction: column;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
}

body .tm-scope .tm-inbox__item {
	align-items: center;
	border-radius: 12px;
	color: var(--tm-dark);
	display: flex;
	gap: 0.75rem;
	padding: 0.65rem 0.7rem;
	text-decoration: none;
	transition: background 0.15s;
}

body .tm-scope .tm-inbox__item:hover,
body .tm-scope .tm-inbox__item:focus-visible {
	background: var(--tm-offwhite);
	color: var(--tm-dark);
}

body .tm-scope .tm-inbox__item.is-active {
	background: var(--tm-primary-softer);
}

body .tm-scope .tm-inbox__item-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

body .tm-scope .tm-inbox__item-row {
	align-items: center;
	display: flex;
	gap: 0.5rem;
	justify-content: space-between;
	min-width: 0;
}

body .tm-scope .tm-inbox__item-row strong {
	font-size: 0.93rem;
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-inbox__item-row time {
	color: #8E8A86;
	flex-shrink: 0;
	font-size: 0.72rem;
}

body .tm-scope .tm-inbox__snippet {
	color: var(--tm-grey);
	font-size: 0.82rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-inbox__item.has-unread strong,
body .tm-scope .tm-inbox__item.has-unread .tm-inbox__snippet {
	color: var(--tm-dark);
	font-weight: 700;
}

body .tm-scope .tm-inbox__item.has-unread time {
	color: var(--tm-primary);
	font-weight: 600;
}

body .tm-scope .tm-inbox__item .tm-badge {
	flex-shrink: 0;
	margin: 0;
}

body .tm-scope .tm-inbox__empty,
body .tm-scope .tm-inbox__placeholder {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding: 2rem 1rem;
	text-align: center;
}

body .tm-scope .tm-inbox__placeholder {
	flex: 1;
	justify-content: center;
}

body .tm-scope .tm-inbox__empty h3,
body .tm-scope .tm-inbox__placeholder h3 {
	color: var(--tm-dark);
	font-size: 1.15rem;
	margin: 0.85rem 0 0.35rem;
}

body .tm-scope .tm-inbox__empty p,
body .tm-scope .tm-inbox__placeholder p {
	color: var(--tm-grey);
	font-size: 0.85rem;
	margin: 0 0 1rem;
	max-width: 260px;
}

body .tm-scope .tm-inbox__empty-icon {
	align-items: center;
	background: var(--tm-primary-softer);
	border-radius: 16px;
	color: var(--tm-primary);
	display: inline-flex;
	height: 52px;
	justify-content: center;
	width: 52px;
}

body .tm-scope .tm-inbox__empty-icon .tm-icon {
	height: 24px;
	width: 24px;
}

body .tm-scope .tm-inbox__pane {
	display: flex;
	flex-direction: column;
	min-height: 0;
	min-width: 0;
}

body .tm-scope .tm-inbox__back {
	align-items: center;
	border-radius: 50%;
	color: var(--tm-dark);
	display: none;
	flex-shrink: 0;
	height: 36px;
	justify-content: center;
	margin-left: -0.4rem;
	width: 36px;
}

body .tm-scope .tm-inbox__back:hover {
	background: var(--tm-offwhite);
	color: var(--tm-primary);
}

body .tm-scope .tm-chat__header {
	align-items: center;
	border-bottom: 1px solid #EFEBE5;
	display: flex;
	gap: 0.85rem;
	padding: 0.85rem 1.25rem;
}

body .tm-scope .tm-chat__header-text {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

body .tm-scope .tm-chat__header-text strong {
	color: var(--tm-dark);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
}

body .tm-scope .tm-chat__header-text span {
	color: var(--tm-grey);
	font-size: 0.8rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Online / offline: a label in chat headers, a dot on avatars in the conversation list. */
body .tm-scope .tm-presence {
	align-items: center;
	display: inline-flex;
	gap: 0.3rem;
	margin-left: 0.5rem;
	vertical-align: middle;
}

body .tm-scope .tm-presence__dot,
body .tm-scope .tm-presence-dot {
	background: #b8bec9;
	border-radius: 50%;
	display: inline-block;
	flex: 0 0 auto;
	height: 8px;
	width: 8px;
}

body .tm-scope .tm-presence.is-online .tm-presence__dot,
body .tm-scope .tm-presence-dot.is-online {
	background: #22a45d;
}

body .tm-scope .tm-chat__header-text .tm-presence.is-online .tm-presence__text {
	color: #1b8a4c;
}

body .tm-scope .tm-presence-wrap {
	display: inline-flex;
	flex: 0 0 auto;
	position: relative;
}

body .tm-scope .tm-presence-wrap .tm-presence-dot {
	border: 2px solid #fff;
	bottom: 0;
	box-sizing: content-box;
	height: 9px;
	position: absolute;
	right: 0;
	width: 9px;
}

body .tm-scope .tm-presence-wrap .tm-presence-dot:not(.is-online) {
	display: none;
}

body .tm-scope form.is-sending {
	opacity: 0.7;
	pointer-events: none;
}

body .tm-scope .tm-avatar--xs {
	font-size: 0.72rem;
	height: 28px;
	width: 28px;
}

body .tm-scope .tm-avatar--lg {
	font-size: 1.75rem;
	height: 72px;
	width: 72px;
}

body .tm-scope .tm-avatar--brand {
	background: linear-gradient(135deg, var(--tm-olive), var(--tm-secondary));
}

body .tm-scope .tm-chat__thread {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 1rem 1.25rem 0.75rem;
	scrollbar-width: thin;
}

body .tm-scope .tm-chat__intro {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin: auto 0 1.25rem;
	padding: 1.5rem 1rem 0.5rem;
	text-align: center;
}

body .tm-scope .tm-chat__intro h3 {
	color: var(--tm-dark);
	font-size: 1.15rem;
	margin: 0.75rem 0 0.25rem;
}

body .tm-scope .tm-chat__intro p {
	color: var(--tm-grey);
	font-size: 0.88rem;
	margin: 0;
	max-width: 360px;
}

body .tm-scope .tm-chat__intro .tm-chat__intro-note {
	align-items: center;
	background: var(--tm-offwhite);
	border-radius: var(--tm-pill);
	display: inline-flex;
	font-size: 0.75rem;
	gap: 0.4rem;
	margin-top: 0.85rem;
	max-width: 100%;
	padding: 0.35rem 0.85rem;
}

body .tm-scope .tm-chat__intro-note .tm-icon {
	flex-shrink: 0;
	height: 13px;
	width: 13px;
}

body .tm-scope .tm-chat__divider {
	color: #8E8A86;
	font-size: 0.72rem;
	font-weight: 500;
	margin: 1rem 0 0.5rem;
	text-align: center;
}

body .tm-scope .tm-chat__divider--new {
	align-items: center;
	color: var(--tm-rose);
	display: flex;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

body .tm-scope .tm-chat__divider--new::before,
body .tm-scope .tm-chat__divider--new::after {
	background: color-mix(in srgb, var(--tm-rose) 35%, transparent);
	content: "";
	flex: 1;
	height: 1px;
}

body .tm-scope .tm-chat__group {
	align-items: flex-end;
	display: flex;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

body .tm-scope .tm-chat__divider + .tm-chat__group {
	margin-top: 0;
}

body .tm-scope .tm-chat__group.is-mine {
	justify-content: flex-end;
}

body .tm-scope .tm-chat__group-avatar {
	flex-shrink: 0;
	line-height: 0;
}

body .tm-scope .tm-chat__stack {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-width: min(75%, 560px);
	min-width: 0;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__stack {
	align-items: flex-end;
}

body .tm-scope .tm-chat__name {
	color: #8E8A86;
	font-size: 0.72rem;
	margin: 0 0 2px 12px;
}

body .tm-scope .tm-chat__bubble {
	background: var(--tm-chat-theirs);
	border-radius: 18px;
	color: var(--tm-dark);
	font-size: 0.95rem;
	line-height: 1.45;
	max-width: 100%;
	overflow-wrap: anywhere;
	padding: 0.55rem 0.9rem;
}

body .tm-scope .tm-chat__group.is-theirs .tm-chat__msg:not(:last-child) .tm-chat__bubble {
	border-bottom-left-radius: 5px;
}

body .tm-scope .tm-chat__group.is-theirs .tm-chat__msg + .tm-chat__msg .tm-chat__bubble {
	border-top-left-radius: 5px;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__bubble {
	background: var(--tm-chat-mine);
	color: #fff;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__msg:not(:last-child) .tm-chat__bubble {
	border-bottom-right-radius: 5px;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__msg + .tm-chat__msg .tm-chat__bubble {
	border-top-right-radius: 5px;
}

/* One message: bubble, "⋮" menu inside its top-right corner, "Edited" note. */
body .tm-scope .tm-chat__msg {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	max-width: 100%;
	position: relative;
}

body .tm-scope .tm-chat__msg > .tm-chat__bubble {
	padding-right: 1.85rem;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__msg {
	align-items: flex-end;
}

body .tm-scope .tm-chat__msg.is-deleted .tm-chat__bubble,
body .tm-scope .tm-chat__group.is-mine .tm-chat__msg.is-deleted .tm-chat__bubble {
	background: transparent;
	border: 1px solid #E4DFD8;
	color: #8E8A86;
	font-size: 0.88rem;
	font-style: italic;
}

body .tm-scope .tm-chat__msg.is-pending .tm-chat__bubble {
	opacity: 0.55;
}

body .tm-scope .tm-chat__msg.is-editing .tm-chat__bubble {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px color-mix(in srgb, var(--tm-primary) 45%, transparent);
}

body .tm-scope .tm-chat__edited {
	color: #8E8A86;
	font-size: 0.68rem;
	margin: 2px 8px 0;
}

body .tm-scope .tm-chat__menu {
	position: absolute;
	right: 4px;
	top: 5px;
	z-index: 2;
}

body .tm-scope .tm-chat__menu[open] {
	z-index: 4;
}

body .tm-scope .tm-chat__menu summary {
	align-items: center;
	border-radius: 50%;
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	height: 24px;
	justify-content: center;
	list-style: none;
	opacity: 0.55;
	transition: background-color 0.15s, opacity 0.15s;
	width: 24px;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__msg:not(.is-deleted) .tm-chat__menu summary {
	color: #fff;
	opacity: 0.8;
}

body .tm-scope .tm-chat__menu summary::-webkit-details-marker {
	display: none;
}

body .tm-scope .tm-chat__menu summary:hover,
body .tm-scope .tm-chat__menu summary:focus-visible,
body .tm-scope .tm-chat__menu[open] summary {
	background: rgba(46, 59, 54, 0.1);
	opacity: 1;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__msg:not(.is-deleted) .tm-chat__menu summary:hover,
body .tm-scope .tm-chat__group.is-mine .tm-chat__msg:not(.is-deleted) .tm-chat__menu summary:focus-visible,
body .tm-scope .tm-chat__group.is-mine .tm-chat__msg:not(.is-deleted) .tm-chat__menu[open] summary {
	background: rgba(255, 255, 255, 0.2);
}

body .tm-scope .tm-chat__menu summary .tm-icon {
	height: 16px;
	width: 16px;
}

body .tm-scope .tm-chat__menu-list {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 6px 24px rgba(46, 59, 54, 0.16), 0 1px 3px rgba(46, 59, 54, 0.08);
	display: flex;
	flex-direction: column;
	min-width: 200px;
	padding: 6px;
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
}

body .tm-scope .tm-chat__menu.is-up .tm-chat__menu-list {
	bottom: calc(100% + 6px);
	top: auto;
}

body .tm-scope .tm-chat__menu-form {
	margin: 0;
}

body .tm-scope .tm-chat__menu-list button {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 8px;
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	font-family: inherit;
	font-size: 0.88rem;
	font-weight: 500;
	gap: 0.65rem;
	line-height: 1.3;
	padding: 0.55rem 0.7rem;
	text-align: left;
	width: 100%;
}

body .tm-scope .tm-chat__menu-list button:hover,
body .tm-scope .tm-chat__menu-list button:focus-visible {
	background: var(--tm-offwhite);
	color: var(--tm-dark);
}

body .tm-scope .tm-chat__menu-list button.is-danger,
body .tm-scope .tm-chat__menu-list button.is-danger:hover {
	color: var(--tm-error);
}

body .tm-scope .tm-chat__menu-list button[hidden] {
	display: none;
}

body .tm-scope .tm-chat__menu-list .tm-icon {
	flex-shrink: 0;
	height: 16px;
	width: 16px;
}

body .tm-scope .tm-chat__editing {
	align-items: center;
	background: var(--tm-primary-softer);
	border-top: 1px solid #EFEBE5;
	color: var(--tm-primary);
	display: flex;
	font-size: 0.8rem;
	font-weight: 600;
	gap: 0.45rem;
	padding: 0.5rem 1.25rem;
}

body .tm-scope .tm-chat__editing[hidden] {
	display: none;
}

body .tm-scope .tm-chat__editing .tm-icon {
	height: 14px;
	width: 14px;
}

body .tm-scope .tm-chat__editing button {
	background: transparent;
	border: 0;
	color: var(--tm-grey);
	cursor: pointer;
	font-family: inherit;
	font-size: 0.8rem;
	margin-left: auto;
	padding: 0.2rem 0.4rem;
	text-decoration: underline;
}

body .tm-scope .tm-chat__editing button:hover,
body .tm-scope .tm-chat__editing button:focus-visible {
	background: transparent;
	color: var(--tm-primary);
}

body .tm-scope .tm-chat__editing + .tm-chat__composer {
	border-top: 0;
}

body .tm-scope .tm-inbox__pane {
	position: relative;
}

body .tm-scope .tm-chat__toast {
	background: var(--tm-dark);
	border-radius: var(--tm-pill);
	bottom: 96px;
	box-shadow: 0 6px 20px rgba(46, 59, 54, 0.2);
	color: #fff;
	font-size: 0.82rem;
	left: 50%;
	max-width: calc(100% - 2rem);
	opacity: 0;
	padding: 0.5rem 1rem;
	pointer-events: none;
	position: absolute;
	transform: translate(-50%, 8px);
	transition: opacity 0.2s, transform 0.2s;
	z-index: 6;
}

body .tm-scope .tm-chat__toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

body .tm-scope .tm-chat__bubble a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body .tm-scope .tm-chat__group.is-pending .tm-chat__bubble {
	opacity: 0.65;
}

body .tm-scope .tm-chat__group.is-failed .tm-chat__bubble {
	background: color-mix(in srgb, var(--tm-error) 12%, #fff);
	color: var(--tm-error);
}

body .tm-scope .tm-chat__status {
	align-items: center;
	align-self: flex-end;
	color: #8E8A86;
	display: inline-flex;
	font-size: 0.72rem;
	gap: 0.2rem;
	margin-top: 0.3rem;
}

body .tm-scope .tm-chat__status .tm-icon {
	height: 13px;
	width: 13px;
}

body .tm-scope .tm-chat__status.is-seen {
	color: var(--tm-primary);
}

body .tm-scope .tm-chat__status.is-delivered .tm-icon,
body .tm-scope .tm-chat__status.is-seen .tm-icon {
	width: 16px;
}

body .tm-scope .tm-chat__typing {
	padding: 0 1.25rem 0.5rem;
}

body .tm-scope .tm-chat__typing[hidden] {
	display: none;
}

body .tm-scope .tm-chat__typing-dots {
	align-items: center;
	background: #F1EFEC;
	border-radius: 16px 16px 16px 4px;
	display: inline-flex;
	gap: 4px;
	padding: 0.6rem 0.8rem;
}

body .tm-scope .tm-chat__typing-dots i {
	animation: tm-typing 1.2s infinite ease-in-out;
	background: #8E8A86;
	border-radius: 50%;
	display: block;
	height: 6px;
	width: 6px;
}

body .tm-scope .tm-chat__typing-dots i:nth-child(2) {
	animation-delay: 0.15s;
}

body .tm-scope .tm-chat__typing-dots i:nth-child(3) {
	animation-delay: 0.3s;
}

@keyframes tm-typing {
	0%, 60%, 100% {
		opacity: 0.35;
		transform: translateY(0);
	}

	30% {
		opacity: 1;
		transform: translateY(-3px);
	}
}

@media (prefers-reduced-motion: reduce) {
	body .tm-scope .tm-chat__typing-dots i {
		animation: none;
	}
}

body .tm-scope .tm-calls__type::before {
	background-color: var(--tm-olive);
	content: "";
	display: inline-block;
	height: 12px;
	margin-right: 0.4rem;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18 18 6M8 6h10v10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18 18 6M8 6h10v10'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 12px;
}

body .tm-scope .tm-calls__type.is-in::before {
	background-color: var(--tm-primary);
	transform: rotate(180deg);
}

body .tm-scope .is-typing .tm-presence__text,
body .tm-scope .tm-inbox__item.is-typing .tm-inbox__snippet {
	color: var(--tm-primary);
	font-style: italic;
}

body .tm-scope .tm-chat__status.is-failed {
	color: var(--tm-error);
}

body .tm-scope .tm-chat__suggest {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	padding: 0 1.25rem 0.75rem;
}

body .tm-scope .tm-chat__suggest button {
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--tm-primary) 30%, #fff);
	border-radius: var(--tm-pill);
	color: var(--tm-primary);
	cursor: pointer;
	font-family: inherit;
	font-size: 0.85rem;
	line-height: 1.3;
	padding: 0.45rem 0.9rem;
	transition: background 0.15s, border-color 0.15s;
}

body .tm-scope .tm-chat__suggest button:hover,
body .tm-scope .tm-chat__suggest button:focus-visible {
	background: var(--tm-primary-softer);
	border-color: var(--tm-primary);
	color: var(--tm-primary);
}

body .tm-scope .tm-chat__composer {
	align-items: flex-end;
	border-top: 1px solid #EFEBE5;
	display: flex;
	gap: 0.6rem;
	margin: 0;
	padding: 0.75rem 1rem 0.5rem;
	position: relative;
}

/* Emoji and attach buttons before the message box. */
body .tm-scope .tm-chat__tools {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 2px;
	height: 44px;
}

body .tm-scope .tm-chat__tool {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 100%;
	color: var(--tm-primary);
	cursor: pointer;
	display: inline-flex;
	height: 36px;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: relative;
	transition: background-color 0.15s;
	width: 36px;
}

body .tm-scope .tm-chat__tool[hidden] {
	display: none;
}

body .tm-scope .tm-chat__tool:hover,
body .tm-scope .tm-chat__tool:focus-visible,
body .tm-scope .tm-chat__tool:focus-within,
body .tm-scope .tm-chat__tool.is-active {
	background: var(--tm-primary-softer);
	color: var(--tm-primary);
}

body .tm-scope .tm-chat__tool .tm-icon {
	height: 22px;
	width: 22px;
}

body .tm-scope .tm-chat__tool input[type="file"] {
	height: 1px;
	opacity: 0;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

body .tm-scope .tm-chat__emoji {
	background: #fff;
	border-radius: 16px;
	bottom: calc(100% + 6px);
	box-shadow: 0 8px 30px rgba(46, 59, 54, 0.18), 0 1px 3px rgba(46, 59, 54, 0.08);
	display: grid;
	gap: 2px;
	grid-template-columns: repeat(8, 1fr);
	left: 0.75rem;
	padding: 8px;
	position: absolute;
	width: min(320px, calc(100% - 1.5rem));
	z-index: 5;
}

body .tm-scope .tm-chat__emoji[hidden] {
	display: none;
}

body .tm-scope .tm-chat__emoji button {
	aspect-ratio: 1;
	background: transparent;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
	font-size: 1.3rem;
	line-height: 1;
	padding: 0;
	transition: background-color 0.12s, transform 0.12s;
}

body .tm-scope .tm-chat__emoji button:hover,
body .tm-scope .tm-chat__emoji button:focus-visible {
	background: var(--tm-offwhite);
	transform: scale(1.15);
}

/* The chosen file, shown above the composer until it is sent. */
body .tm-scope .tm-chat__attachment {
	align-items: center;
	background: var(--tm-offwhite);
	border-top: 1px solid #EFEBE5;
	display: flex;
	font-size: 0.82rem;
	gap: 0.6rem;
	padding: 0.5rem 1.25rem;
}

body .tm-scope .tm-chat__attachment[hidden] {
	display: none;
}

body .tm-scope .tm-chat__attachment:not([hidden]) + .tm-chat__composer {
	border-top: 0;
}

body .tm-scope .tm-chat__attachment-thumb {
	align-items: center;
	background: #fff;
	border-radius: 8px;
	color: var(--tm-primary);
	display: inline-flex;
	flex-shrink: 0;
	height: 40px;
	justify-content: center;
	overflow: hidden;
	width: 40px;
}

body .tm-scope .tm-chat__attachment-thumb img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

body .tm-scope .tm-chat__attachment-thumb img[hidden],
body .tm-scope .tm-chat__attachment.has-image .tm-chat__attachment-thumb .tm-icon {
	display: none;
}

body .tm-scope .tm-chat__attachment-name {
	color: var(--tm-dark);
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-chat__attachment button {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--tm-grey);
	cursor: pointer;
	display: inline-flex;
	height: 30px;
	justify-content: center;
	padding: 0;
	width: 30px;
}

body .tm-scope .tm-chat__attachment button:hover,
body .tm-scope .tm-chat__attachment button:focus-visible {
	background: #fff;
	color: var(--tm-error);
}

body .tm-scope .tm-chat__attachment button .tm-icon {
	height: 16px;
	width: 16px;
}

/* Attachments inside a bubble. */
body .tm-scope .tm-chat__msg.has-image > .tm-chat__bubble {
	padding: 4px;
}

body .tm-scope .tm-chat__image {
	border-radius: 14px;
	display: block;
	overflow: hidden;
}

body .tm-scope .tm-chat__image img {
	display: block;
	height: auto;
	max-height: 280px;
	max-width: 100%;
	object-fit: cover;
	width: 260px;
}

body .tm-scope .tm-chat__msg.has-image .tm-chat__text {
	padding: 0.4rem 0.7rem 0.3rem;
}

body .tm-scope .tm-chat__msg.has-image .tm-chat__menu summary,
body .tm-scope .tm-chat__group.is-mine .tm-chat__msg.has-image .tm-chat__menu summary {
	background: rgba(46, 59, 54, 0.55);
	color: #fff;
	opacity: 1;
}

body .tm-scope .tm-chat__msg.has-image .tm-chat__menu {
	right: 8px;
	top: 8px;
}

body .tm-scope .tm-chat__bubble a.tm-chat__file {
	align-items: center;
	color: inherit;
	display: flex;
	gap: 0.65rem;
	min-width: 190px;
	padding: 0.15rem 0;
	text-decoration: none;
}

body .tm-scope .tm-chat__file-icon {
	align-items: center;
	background: #fff;
	border-radius: 10px;
	color: var(--tm-primary);
	display: inline-flex;
	flex-shrink: 0;
	height: 38px;
	justify-content: center;
	width: 38px;
}

body .tm-scope .tm-chat__group.is-mine .tm-chat__file-icon {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

body .tm-scope .tm-chat__file-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

body .tm-scope .tm-chat__file-text strong {
	font-size: 0.88rem;
	font-weight: 600;
	max-width: 200px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-chat__file-text small {
	font-size: 0.72rem;
	opacity: 0.75;
}

body .tm-scope .tm-chat__bubble a.tm-chat__file:hover strong {
	text-decoration: underline;
}

body .tm-scope .tm-chat__msg.has-file .tm-chat__text,
body .tm-scope .tm-chat__pending-file + .tm-chat__text {
	margin-top: 0.4rem;
}

body .tm-scope .tm-chat__pending-file {
	font-weight: 600;
}

/* Message box with the send button sitting inside its right edge. */
body .tm-scope .tm-chat__field {
	display: block;
	flex: 1;
	min-width: 0;
	position: relative;
}

body .tm-scope .tm-chat__composer textarea {
	background: var(--tm-chat-theirs);
	border: 1px solid transparent;
	border-radius: 22px;
	display: block;
	font-size: 0.95rem;
	line-height: 1.4;
	margin: 0;
	max-height: 140px;
	min-height: 44px;
	overflow-y: auto;
	padding: 0.65rem 3.1rem 0.65rem 1.1rem;
	resize: none;
	width: 100%;
}

body .tm-scope .tm-chat__composer textarea::placeholder {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body .tm-scope .tm-chat__composer textarea:focus {
	background: #fff;
	border-color: color-mix(in srgb, var(--tm-primary) 45%, #fff);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tm-primary) 12%, transparent);
}

body .tm-scope .tm-chat__send {
	align-items: center;
	background: var(--tm-chat-mine);
	border: 0;
	border-radius: 50%;
	box-shadow: 0 4px 12px color-mix(in srgb, var(--tm-primary) 30%, transparent);
	bottom: 4px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	height: 36px;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: absolute;
	right: 4px;
	transition: transform 0.15s, opacity 0.15s, box-shadow 0.15s;
	width: 36px;
}

body .tm-scope .tm-chat__send:hover,
body .tm-scope .tm-chat__send:focus-visible {
	background: var(--tm-chat-mine);
	color: #fff;
	transform: scale(1.06);
}

body .tm-scope .tm-chat__send:disabled {
	box-shadow: none;
	cursor: default;
	opacity: 0.4;
	transform: none;
}

body .tm-scope .tm-chat__send .tm-icon {
	height: 17px;
	margin: 1px 2px 0 0;
	width: 17px;
}

body .tm-scope .tm-chat__hint {
	color: #A19C97;
	font-size: 0.7rem;
	margin: 0;
	padding: 0 1.25rem 0.6rem 7.2rem;
}

/* One pane at a time on small screens: the list, or the open conversation. */
@media (max-width: 782px) {
	body .tm-scope .tm-card.tm-inbox {
		grid-template-columns: minmax(0, 1fr);
	}

	body .tm-scope .tm-inbox__list {
		border-right: 0;
	}

	body .tm-scope .tm-inbox.has-active .tm-inbox__list,
	body .tm-scope .tm-inbox:not(.has-active) .tm-inbox__pane {
		display: none;
	}

	body .tm-scope .tm-inbox__back {
		display: inline-flex;
	}
}

@media (hover: none) {
	body .tm-scope .tm-chat__hint {
		display: none;
	}

	body .tm-scope .tm-chat__composer {
		padding-bottom: 0.75rem;
	}
}

/* Sessions */

body .tm-scope .tm-sessions {
	display: grid;
	gap: 1rem;
}

body .tm-scope .tm-session {
	align-items: center;
	border: 1px solid #EEE;
	border-radius: var(--tm-radius);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1rem 1.25rem;
}

body .tm-scope .tm-session__icon {
	align-items: center;
	background: var(--tm-primary-soft);
	border-radius: 12px;
	color: var(--tm-primary);
	display: flex;
	height: 48px;
	justify-content: center;
	width: 48px;
}

body .tm-scope .tm-session__body {
	flex: 1;
	min-width: 180px;
}

body .tm-scope .tm-session__body strong,
body .tm-scope .tm-session__body span {
	display: block;
}

body .tm-scope .tm-session__body span {
	color: var(--tm-grey);
	font-size: 0.875rem;
}

/* Therapists */

body .tm-scope .tm-therapist-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
}

@media (min-width: 1024px) {
	body .tm-scope .tm-therapist-grid[style*="--tm-columns"] {
		grid-template-columns: repeat(var(--tm-columns), minmax(0, 1fr));
	}
}

body .tm-scope .tm-therapist-card {
	background: #fff;
	border: 1px solid #EEE;
	border-radius: var(--tm-radius);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

body .tm-scope .tm-card--highlight .tm-therapist-card {
	border: 0;
	flex-direction: row;
}

body .tm-scope .tm-therapist-card__photo {
	align-items: center;
	aspect-ratio: 4 / 3;
	background: var(--tm-secondary-soft);
	color: var(--tm-olive);
	display: flex;
	font-size: 3rem;
	font-weight: 700;
	justify-content: center;
	overflow: hidden;
}

body .tm-scope .tm-card--highlight .tm-therapist-card__photo {
	aspect-ratio: 1;
	border-radius: var(--tm-radius);
	flex: 0 0 140px;
}

body .tm-scope .tm-therapist-card__photo img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

body .tm-scope .tm-therapist-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.1rem 1.25rem 1.25rem;
}

body .tm-scope .tm-therapist-card__name {
	font-size: 1.1rem;
	margin-bottom: 0.15rem;
}

body .tm-scope .tm-therapist-card__credentials {
	color: var(--tm-primary);
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
}

body .tm-scope .tm-therapist-card__bio {
	color: var(--tm-grey);
	font-size: 0.9rem;
}

body .tm-scope .tm-therapist-card .tm-actions {
	justify-content: flex-start;
	margin-top: auto;
}

body .tm-scope .tm-match__lead {
	margin: 0.25rem 0 1rem;
}

body .tm-scope .tm-card__head .tm-match__lead {
	margin-bottom: 0;
}

body .tm-scope .tm-match__more {
	align-items: center;
	border-top: 1px solid var(--tm-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	justify-content: space-between;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
}

body .tm-scope .tm-match__more p {
	color: var(--tm-grey);
	margin: 0;
}

body .tm-scope .tm-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

body .tm-scope .tm-tags li {
	background: var(--tm-secondary-soft);
	border-radius: var(--tm-pill);
	color: var(--tm-olive);
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.2rem 0.65rem;
}

/* Assessment answers */

body .tm-scope .tm-answers {
	margin: 0;
}

body .tm-scope .tm-answers__section {
	border-bottom: 2px solid var(--tm-primary-soft);
	color: var(--tm-primary);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	margin: 1.5rem 0 0.75rem;
	padding-bottom: 0.4rem;
	text-transform: uppercase;
}

body .tm-scope .tm-answers dt {
	color: var(--tm-grey);
	font-size: 0.875rem;
	margin-top: 0.75rem;
}

body .tm-scope .tm-answers dd {
	font-weight: 600;
	margin: 0.15rem 0 0;
}

/* Locked / payment CTA */

body .tm-scope .tm-locked {
	padding: 3rem 2rem;
	text-align: center;
}

body .tm-scope .tm-locked .tm-icon {
	color: var(--tm-primary);
	height: 40px;
	margin-bottom: 1rem;
	width: 40px;
}

body .tm-scope .tm-pay-cta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
}

body .tm-scope .tm-pay-cta__amount {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0;
}

body .tm-scope .tm-pay-note {
	align-items: center;
	background: var(--tm-offwhite);
	border: 1px solid var(--tm-tan);
	border-radius: var(--tm-radius);
	color: var(--tm-grey);
	display: flex;
	font-size: 0.875rem;
	gap: 0.6rem;
	margin: 0 0 1.25rem;
	padding: 0.75rem 1rem;
}

body .tm-scope .tm-pay-note .tm-icon {
	color: var(--tm-olive);
	flex: none;
}

body .tm-scope .tm-pay-total {
	color: var(--tm-primary);
	font-weight: 700;
}

body .tm-scope .tm-table td .tm-status {
	margin-left: 0.4rem;
}

body .tm-scope .tm-pay-ref {
	background: var(--tm-offwhite);
	border-radius: 6px;
	color: var(--tm-grey);
	font-size: 0.75rem;
	padding: 0.15rem 0.4rem;
	word-break: break-all;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	body .tm-scope.tm-dashboard {
		grid-template-columns: minmax(0, 1fr);
	}

	body .tm-scope .tm-dashboard__sidebar {
		bottom: 0;
		box-shadow: 8px 0 30px rgba(0, 0, 0, 0.2);
		left: 0;
		position: fixed;
		top: 0;
		transform: translateX(-105%);
		transition: transform 0.25s ease;
		width: min(280px, 85vw);
		z-index: 50;
	}

	body.admin-bar .tm-scope .tm-dashboard__sidebar {
		top: 32px;
	}

	body .tm-scope.tm-dashboard.is-nav-open .tm-dashboard__sidebar {
		transform: none;
	}

	body .tm-scope .tm-dashboard__menu-btn {
		display: inline-flex;
	}

	body .tm-scope .tm-grid-2,
	body .tm-scope .tm-grid-2--wide-left {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	body .tm-scope.tm-assessment {
		padding: calc(var(--tm-header-offset, 0px) + 1.5rem) 0.75rem 3rem;
	}

	body .tm-scope .tm-card {
		padding: 1.4rem 1.1rem;
	}

	body .tm-scope .tm-option {
		padding: 0.7rem 1.1rem;
	}

	body .tm-scope .tm-question__nav {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	body .tm-scope .tm-question__nav .tm-actions {
		display: grid;
		grid-auto-columns: 1fr;
		grid-auto-flow: column;
	}

	body .tm-scope .tm-field-row {
		grid-template-columns: 1fr;
	}

	body .tm-scope .tm-table thead {
		display: none;
	}

	body .tm-scope .tm-table,
	body .tm-scope .tm-table tbody,
	body .tm-scope .tm-table tr,
	body .tm-scope .tm-table td {
		display: block;
		width: 100%;
	}

	body .tm-scope .tm-table tr {
		border-bottom: 1px solid #EEE;
		padding: 0.5rem 0;
	}

	body .tm-scope .tm-table td {
		border: 0;
		display: flex;
		justify-content: space-between;
		padding: 0.35rem 0;
		text-align: right;
	}

	body .tm-scope .tm-table td[data-label]::before {
		color: var(--tm-grey);
		content: attr(data-label);
		font-size: 0.8rem;
		padding-right: 1rem;
		text-align: left;
	}

	body .tm-scope .tm-table__actions {
		justify-content: flex-end;
	}

	body .tm-scope .tm-card--highlight .tm-therapist-card {
		flex-direction: column;
	}

	body .tm-scope .tm-card.tm-inbox {
		border-radius: var(--tm-radius);
		min-height: 420px;
		padding: 0;
	}

	body .tm-scope .tm-chat__header {
		padding: 0.7rem 0.9rem;
	}

	body .tm-scope .tm-chat__thread {
		padding: 0.75rem 0.75rem 0.5rem;
	}

	body .tm-scope .tm-chat__stack {
		max-width: 82%;
	}

	body .tm-scope .tm-chat__composer {
		gap: 0.35rem;
		padding: 0.6rem 0.75rem 0.75rem;
	}

	body .tm-scope .tm-user-chip {
		padding: 3px;
	}

	body .tm-scope .tm-user-chip__name {
		display: none;
	}

	body .tm-scope .tm-dashboard__topbar {
		gap: 0.6rem;
	}

	body .tm-scope .tm-notify {
		position: static;
	}

	body .tm-scope .tm-notify__panel {
		left: 0.75rem;
		right: 0.75rem;
		top: calc(100% + 6px);
		width: auto;
	}
}

/* Client dashboard – every tab, from small laptops down to 320px phones. */

body .tm-scope.tm-dashboard .tm-table td {
	overflow-wrap: anywhere;
}

body .tm-scope.tm-dashboard .tm-table__actions {
	white-space: nowrap;
}

/* Columns size to their content: words never split, actions take only what they need. */
@media (min-width: 901px) {
	body .tm-scope.tm-dashboard .tm-table td {
		overflow-wrap: break-word;
	}

	body .tm-scope.tm-dashboard .tm-table .tm-status,
	body .tm-scope.tm-dashboard .tm-table__date {
		white-space: nowrap;
	}

	body .tm-scope.tm-dashboard .tm-table td.tm-table__actions {
		width: 1%;
	}
}

@media (max-width: 1200px) {
	body .tm-scope.tm-dashboard .tm-grid-2--wide-left {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 1024px) {
	body .tm-scope.tm-dashboard .tm-card {
		padding: 1.5rem;
	}

	body .tm-scope.tm-dashboard .tm-card.tm-inbox {
		padding: 0;
	}

	body .tm-scope.tm-dashboard .tm-dashboard__topbar {
		padding: 0.75rem clamp(0.75rem, 2.5vw, 1.5rem);
	}

	body .tm-scope.tm-dashboard .tm-locked {
		padding: 2.5rem 1.5rem;
	}
}

/* Tables turn into labelled rows before their columns get cramped. */
@media (max-width: 900px) {
	body .tm-scope.tm-dashboard .tm-table thead {
		display: none;
	}

	body .tm-scope.tm-dashboard .tm-table,
	body .tm-scope.tm-dashboard .tm-table tbody,
	body .tm-scope.tm-dashboard .tm-table tr,
	body .tm-scope.tm-dashboard .tm-table td {
		display: block;
		width: 100%;
	}

	body .tm-scope.tm-dashboard .tm-table tr {
		border-bottom: 1px solid #EEE;
		padding: 0.6rem 0;
	}

	body .tm-scope.tm-dashboard .tm-table tr:last-child {
		border-bottom: 0;
	}

	body .tm-scope.tm-dashboard .tm-table td {
		align-items: center;
		border: 0;
		display: flex;
		flex-wrap: wrap;
		gap: 0.25rem 1rem;
		justify-content: space-between;
		padding: 0.35rem 0;
		text-align: right;
	}

	body .tm-scope.tm-dashboard .tm-table td[data-label]::before {
		color: var(--tm-grey);
		content: attr(data-label);
		flex-shrink: 0;
		font-size: 0.8rem;
		text-align: left;
	}

	body .tm-scope.tm-dashboard .tm-table td.tm-table__actions {
		gap: 0.5rem;
		justify-content: flex-end;
		padding-top: 0.6rem;
		white-space: normal;
	}

	body .tm-scope.tm-dashboard .tm-table td.tm-table__actions:empty {
		display: none;
	}
}

@media (max-width: 640px) {
	body .tm-scope.tm-dashboard .tm-card {
		padding: 1.25rem 1rem;
	}

	body .tm-scope.tm-dashboard .tm-card.tm-inbox {
		padding: 0;
	}

	body .tm-scope.tm-dashboard .tm-card__title {
		font-size: 1.1rem;
	}

	body .tm-scope.tm-dashboard .tm-welcome h2 {
		font-size: 1.35rem;
	}

	body .tm-scope.tm-dashboard .tm-stats {
		gap: 0.75rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body .tm-scope.tm-dashboard .tm-stat {
		padding: 1rem;
	}

	body .tm-scope.tm-dashboard .tm-stat__value {
		font-size: 0.95rem;
		overflow-wrap: anywhere;
	}

	body .tm-scope.tm-dashboard .tm-grid-2 {
		gap: 1rem;
	}

	body .tm-scope.tm-dashboard .tm-locked {
		padding: 2rem 1rem;
	}

	body .tm-scope.tm-dashboard .tm-pay-cta {
		align-items: stretch;
		flex-direction: column;
	}

	body .tm-scope.tm-dashboard .tm-pay-cta .tm-inline-form,
	body .tm-scope.tm-dashboard .tm-pay-cta .tm-btn {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	body .tm-scope.tm-dashboard .tm-session {
		gap: 0.75rem;
		padding: 0.9rem 1rem;
	}

	body .tm-scope.tm-dashboard .tm-session__icon {
		height: 42px;
		width: 42px;
	}

	body .tm-scope.tm-dashboard .tm-session__body {
		min-width: 0;
	}

	body .tm-scope.tm-dashboard .tm-session > .tm-btn {
		flex: 1 1 100%;
		justify-content: center;
	}

	body .tm-scope.tm-dashboard .tm-card--highlight .tm-therapist-card__photo {
		flex: none;
		width: 120px;
	}

	body .tm-scope.tm-dashboard .tm-card--highlight .tm-therapist-card__body {
		padding: 1rem 0 0;
	}

	body .tm-scope.tm-dashboard .tm-match__more {
		align-items: stretch;
		flex-direction: column;
	}

	body .tm-scope.tm-dashboard .tm-match__more .tm-btn {
		justify-content: center;
	}

	body .tm-scope.tm-dashboard .tm-form .tm-btn--block,
	body .tm-scope.tm-dashboard .tm-form > .tm-btn {
		justify-content: center;
		width: 100%;
	}

	body .tm-scope.tm-dashboard .tm-dashboard__content:has(> .tm-inbox) {
		padding: 0.5rem;
	}
}

@media (max-width: 420px) {
	body .tm-scope.tm-dashboard .tm-dashboard__topbar {
		gap: 0.5rem;
		padding: 0.6rem 0.75rem;
	}

	body .tm-scope.tm-dashboard .tm-dashboard__title {
		font-size: 1.1rem;
	}

	body .tm-scope.tm-dashboard .tm-dashboard__tools {
		gap: 0.4rem;
	}

	body .tm-scope.tm-dashboard .tm-icon-btn {
		height: 36px;
		width: 36px;
	}

	body .tm-scope.tm-dashboard .tm-dashboard__content {
		padding: 0.75rem;
	}

	body .tm-scope.tm-dashboard .tm-stats {
		grid-template-columns: minmax(0, 1fr);
	}

	body .tm-scope.tm-dashboard .tm-actions > .tm-btn,
	body .tm-scope.tm-dashboard .tm-therapist-card .tm-actions > * {
		flex: 1 1 auto;
		justify-content: center;
	}

	body .tm-scope.tm-dashboard .tm-therapist-card .tm-actions .tm-btn {
		justify-content: center;
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .tm-scope *,
	body .tm-scope *::before,
	body .tm-scope *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* Toasts (assets/js/toast.js): saved / updated messages at the top right. */

.tm-toasts {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	pointer-events: none;
	position: fixed;
	right: 1.25rem;
	top: 1.25rem;
	width: min(260px, calc(100vw - 2rem));
	z-index: 100002;
}

body.admin-bar .tm-toasts {
	top: calc(32px + 1.25rem);
}

body .tm-toasts .tm-toast {
	align-items: flex-start;
	animation: tm-toast-in 0.2s ease-out;
	background: #fff;
	border-left: 3px solid var(--tm-toast-color);
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.06);
	color: var(--tm-dark, #2b2b2b);
	display: flex;
	font-family: inherit;
	gap: 0.5rem;
	overflow: hidden;
	padding: 0.5rem 0.45rem 0.6rem 0.65rem;
	pointer-events: auto;
	position: relative;
	transition: opacity 0.2s ease, transform 0.2s ease;
	--tm-toast-color: var(--tm-olive, #556b4e);
}

body .tm-toasts .tm-toast--error {
	--tm-toast-color: #c8423d;
}

body .tm-toasts .tm-toast--info {
	--tm-toast-color: var(--tm-primary, #6b4f6b);
}

body .tm-toasts .tm-toast.is-leaving {
	opacity: 0;
	transform: translateX(16px);
}

@keyframes tm-toast-in {
	from {
		opacity: 0;
		transform: translateX(20px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

body .tm-toasts .tm-toast__icon {
	align-items: center;
	background: color-mix(in srgb, var(--tm-toast-color) 14%, #fff);
	border-radius: 50%;
	color: var(--tm-toast-color);
	display: flex;
	flex-shrink: 0;
	height: 22px;
	justify-content: center;
	width: 22px;
}

body .tm-toasts .tm-toast__icon svg {
	height: 13px;
	width: 13px;
}

body .tm-toasts .tm-toast__text {
	align-self: center;
	color: inherit;
	flex: 1;
	font-size: 0.8rem;
	line-height: 1.4;
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

body .tm-toasts .tm-toast__close {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 50%;
	color: var(--tm-grey, #777);
	cursor: pointer;
	display: flex;
	flex-shrink: 0;
	height: 22px;
	justify-content: center;
	margin: 0;
	padding: 0;
	width: 22px;
}

body .tm-toasts .tm-toast__close:hover,
body .tm-toasts .tm-toast__close:focus-visible {
	background: rgba(0, 0, 0, 0.06);
	color: var(--tm-dark, #2b2b2b);
}

body .tm-toasts .tm-toast__close svg {
	height: 13px;
	width: 13px;
}

body .tm-toasts .tm-toast__bar {
	animation: tm-toast-bar var(--tm-toast-time, 7s) linear forwards;
	background: var(--tm-toast-color);
	bottom: 0;
	height: 2px;
	left: 0;
	opacity: 0.45;
	position: absolute;
	right: 0;
	transform-origin: left;
}

body .tm-toasts .tm-toast.is-paused .tm-toast__bar {
	animation-play-state: paused;
}

@keyframes tm-toast-bar {
	from {
		transform: scaleX(1);
	}
	to {
		transform: scaleX(0);
	}
}

@media (max-width: 782px) {
	body.admin-bar .tm-toasts {
		top: calc(46px + 0.75rem);
	}
}

@media (max-width: 640px) {
	.tm-toasts {
		left: 0.75rem;
		right: 0.75rem;
		top: 0.75rem;
		width: auto;
	}
}

/* Assessment: every text 2px smaller than the shared styles above. */
body .tm-scope.tm-assessment {
	font-size: 14px;
}

body .tm-scope.tm-assessment .tm-btn {
	font-size: 14px;
}

body .tm-scope.tm-assessment .tm-btn--lg {
	font-size: 16px;
}

body .tm-scope.tm-assessment .tm-help {
	font-size: 12px;
}

body .tm-scope.tm-assessment .tm-hero__title {
	font-size: clamp(28px, 4.5vw, 42px);
}

body .tm-scope.tm-assessment .tm-hero__meta {
	font-size: 11.6px;
}

body .tm-scope.tm-assessment .tm-question__head {
	font-size: 10.8px;
}

body .tm-scope.tm-assessment .tm-question__stem {
	font-size: 13.2px;
}

body .tm-scope.tm-assessment .tm-question__title {
	font-size: clamp(18px, calc(2.6vw - 2px), 22px);
}

body .tm-scope.tm-assessment input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body .tm-scope.tm-assessment select,
body .tm-scope.tm-assessment textarea {
	font-size: 14px;
}

body .tm-scope.tm-assessment .tm-select__label {
	font-size: 10px;
}

body .tm-scope.tm-assessment .tm-error {
	font-size: 12.4px;
}

body .tm-scope.tm-assessment .tm-register__title {
	font-size: 22px;
}

body .tm-scope.tm-assessment .tm-field__msg {
	font-size: 10.8px;
}

body .tm-scope.tm-assessment .tm-float label {
	font-size: 14px;
}

body .tm-scope.tm-assessment .tm-float input:focus + label,
body .tm-scope.tm-assessment .tm-float input:not(:placeholder-shown) + label {
	font-size: 10px;
}

body .tm-scope.tm-assessment .tm-register__login {
	font-size: 12.4px;
}

body .tm-scope.tm-assessment .tm-payment__summary p {
	font-size: 12px;
}

body .tm-scope.tm-assessment .tm-payment__amount {
	font-size: 20.4px;
}

body .tm-scope.tm-assessment .tm-payment__heading {
	font-size: 14.8px;
}

body .tm-scope.tm-assessment .tm-payment__secure {
	font-size: 11px;
}

body .tm-scope.tm-assessment .tm-result h3 {
	font-size: 14px;
}

/* Job application form [tm_job_application] */

body .tm-scope.tm-job {
	margin: 0 auto;
	max-width: 960px;
}

body .tm-scope .tm-job__title {
	margin: 0 0 0.5rem;
}

body .tm-scope .tm-job__intro {
	color: var(--tm-grey);
	margin: 0 0 1.5rem;
}

body .tm-scope .tm-job__section {
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	margin: 0 0 1.5rem;
	padding: 1.25rem 1.25rem 0.5rem;
}

body .tm-scope .tm-job__section legend {
	font-size: 1.05rem;
	font-weight: 700;
	padding: 0 0.4rem;
}

body .tm-scope .tm-job__note {
	background: var(--tm-offwhite);
	border-radius: var(--tm-radius);
	font-size: 0.9rem;
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
}

body .tm-scope .tm-job__grid {
	display: grid;
	gap: 0 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .tm-scope .tm-job__field {
	margin: 0 0 1rem;
}

body .tm-scope .tm-job__field--textarea,
body .tm-scope .tm-job__field--check {
	grid-column: 1 / -1;
}

body .tm-scope .tm-job__field > label {
	font-weight: 600;
	margin-bottom: 0.35rem;
}

body .tm-scope .tm-job__field input:not([type="checkbox"]),
body .tm-scope .tm-job__field select,
body .tm-scope .tm-job__field textarea {
	width: 100%;
}

body .tm-scope .tm-job__field small {
	color: var(--tm-grey);
	display: block;
	margin-top: 0.3rem;
}

body .tm-scope .tm-job__req {
	color: var(--tm-error);
}

body .tm-scope .tm-job__field.has-error input:not([type="checkbox"]),
body .tm-scope .tm-job__field.has-error select,
body .tm-scope .tm-job__field.has-error textarea {
	border-color: var(--tm-error);
}

body .tm-scope .tm-job__error {
	color: var(--tm-error);
	font-size: 0.85rem;
	margin: 0.3rem 0 0;
}

body .tm-scope .tm-job__trap {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

@media (max-width: 640px) {
	body .tm-scope .tm-job__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

body .tm-scope .tm-job__privacy {
	background: var(--tm-offwhite);
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	font-size: 0.9rem;
	margin: 0 0 1rem;
	max-height: 320px;
	overflow-y: auto;
	padding: 1rem 1.2rem;
}

body .tm-scope .tm-job__privacy:focus-visible {
	outline: 2px solid var(--tm-primary);
	outline-offset: 2px;
}

body .tm-scope .tm-job__privacy h3 {
	font-size: 0.95rem;
	margin: 0.9rem 0 0.35rem;
}

body .tm-scope .tm-job__privacy p {
	margin: 0 0 0.6rem;
}

body .tm-scope .tm-job__privacy-sub {
	color: var(--tm-grey);
	font-weight: 600;
}

body .tm-scope .tm-job__privacy a {
	color: var(--tm-olive);
	font-weight: 700;
}

/* Login: motivational quote on the left, form on the right */

body .tm-scope .tm-login-split {
	align-items: center;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	margin: 0 auto;
	max-width: 960px;
	width: 100%;
}

/* The quote sits on the page itself; only the form is a card. */
body .tm-scope .tm-login-quote {
	background: transparent;
	color: var(--tm-dark);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 1rem 0;
}

body .tm-scope .tm-login-quote__text {
	border: 0;
	margin: 0;
	padding: 0;
}

body .tm-scope .tm-login-quote__text p {
	color: var(--tm-dark);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.45rem;
	font-style: italic;
	line-height: 1.45;
	margin: 0 0 1.25rem;
}

body .tm-scope .tm-login-quote__text footer {
	color: var(--tm-grey);
	font-size: 0.95rem;
	font-weight: 600;
}

body .tm-scope .tm-login-split__form {
	align-items: center;
	display: flex;
}

body .tm-scope .tm-login-split .tm-card {
	margin: 0;
	max-width: none;
	width: 100%;
}

@media (max-width: 760px) {
	body .tm-scope .tm-login-split {
		gap: 1rem;
		grid-template-columns: minmax(0, 1fr);
	}

	body .tm-scope .tm-login-quote {
		padding: 0.5rem 0.25rem;
	}

	body .tm-scope .tm-login-quote__text p {
		font-size: 1.15rem;
	}
}

/* --------------------------------------------------------------------------
   Client dashboard before the plan is paid
   -------------------------------------------------------------------------- */

body .tm-scope.tm-unpaid {
	background: #fff;
	color: var(--tm-dark);
	min-height: 100vh;
}

body .tm-scope .tm-unpaid__bar {
	align-items: stretch;
	background: #fff;
	box-shadow: 0 2px 6px rgba(46, 59, 54, 0.12);
	display: flex;
	gap: 2rem;
	min-height: 64px;
	padding: 0 1rem;
	position: sticky;
	top: 0;
	z-index: 5;
}

body.admin-bar .tm-scope .tm-unpaid__bar {
	top: 32px;
}

body .tm-scope .tm-unpaid__brand {
	align-items: center;
	display: flex;
}

body .tm-scope .tm-unpaid__logo {
	-webkit-mask: var(--tm-logo) center / contain no-repeat;
	mask: var(--tm-logo) center / contain no-repeat;
	background: var(--tm-primary);
	display: block;
	height: 44px;
	width: 80px;
}

body .tm-scope .tm-unpaid__tabs {
	display: flex;
}

body .tm-scope .tm-unpaid__tabs span {
	align-items: center;
	border-bottom: 4px solid transparent;
	color: var(--tm-dark);
	display: flex;
	font-weight: 500;
	padding: 0 0.75rem;
}

body .tm-scope .tm-unpaid__tabs .is-active {
	border-bottom-color: var(--tm-secondary);
}

body .tm-scope .tm-unpaid__logout {
	align-items: center;
	color: var(--tm-grey);
	display: flex;
	font-size: 0.9rem;
	gap: 0.4rem;
	margin-left: auto;
	text-decoration: none;
}

body .tm-scope .tm-unpaid__logout:hover,
body .tm-scope .tm-unpaid__logout:focus-visible {
	color: var(--tm-primary);
}

body .tm-scope .tm-unpaid__main {
	margin: 0 auto;
	max-width: 760px;
	padding-bottom: 3rem;
}

body .tm-scope .tm-unpaid__panel {
	border-bottom: 1px solid var(--tm-secondary-soft);
}

body .tm-scope .tm-unpaid__panel > summary,
body .tm-scope .tm-unpaid__row {
	align-items: center;
	background: var(--tm-secondary-soft);
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--tm-secondary) 45%, #fff);
	box-sizing: border-box;
	color: var(--tm-dark);
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 700;
	justify-content: space-between;
	list-style: none;
	padding: 0.85rem 1rem;
	text-align: left;
	width: 100%;
}

body .tm-scope .tm-unpaid__panel > summary::-webkit-details-marker {
	display: none;
}

body .tm-scope .tm-unpaid__panel > summary .tm-icon {
	color: var(--tm-secondary-strong);
	transition: transform 0.2s ease;
}

body .tm-scope .tm-unpaid__panel:not([open]) > summary .tm-icon {
	transform: rotate(-90deg);
}

body .tm-scope .tm-unpaid__row {
	margin-top: 1.5rem;
}

body .tm-scope .tm-unpaid__row + .tm-unpaid__row {
	margin-top: 0;
}

body .tm-scope .tm-unpaid__row .tm-icon {
	color: var(--tm-secondary-strong);
	height: 18px;
	width: 18px;
}

body .tm-scope .tm-unpaid__panel > summary:hover,
body .tm-scope .tm-unpaid__row:hover {
	background: color-mix(in srgb, var(--tm-secondary) 34%, #fff);
}

body .tm-scope .tm-unpaid__panel > summary:focus-visible,
body .tm-scope .tm-unpaid__row:focus-visible,
body .tm-scope .tm-unpaid__cta:focus-visible {
	outline: 2px solid var(--tm-primary);
	outline-offset: -2px;
}

body .tm-scope .tm-unpaid__therapist {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1.5rem 1rem 1.75rem;
	text-align: center;
}

body .tm-scope .tm-unpaid__therapist .tm-avatar--xl {
	border: 2px solid var(--tm-border);
	height: 84px;
	width: 84px;
}

body .tm-scope .tm-unpaid__name {
	color: var(--tm-primary);
	font-size: 1.15rem;
	font-weight: 500;
}

body .tm-scope .tm-unpaid__hint {
	color: var(--tm-grey);
	font-size: 0.85rem;
}

body .tm-scope .tm-unpaid__body {
	padding: 3.5rem 1.25rem 0;
	text-align: center;
}

body .tm-scope .tm-unpaid__cta {
	align-items: center;
	background: #fff;
	border: 1px solid var(--tm-secondary);
	border-radius: 4px;
	color: var(--tm-secondary-strong);
	cursor: pointer;
	display: flex;
	font: inherit;
	font-weight: 700;
	gap: 0.5rem;
	justify-content: center;
	padding: 0.55rem 1rem;
	width: 100%;
}

body .tm-scope .tm-unpaid__cta:hover {
	background: var(--tm-secondary-soft);
}

body .tm-scope .tm-unpaid__crisis {
	color: var(--tm-grey);
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.7;
	margin: 2.25rem auto 0;
	max-width: 560px;
}

body .tm-scope .tm-unpaid__crisis .tm-link-btn {
	text-decoration: none;
}

body .tm-scope .tm-unpaid__resources {
	margin: 1rem auto 0;
	max-width: 560px;
	text-align: left;
}

body .tm-scope .tm-unpaid__resources[hidden] {
	display: none;
}

body .tm-scope .tm-unpaid__ssl {
	align-items: center;
	color: #A3A3A3;
	display: inline-flex;
	gap: 0.35rem;
	margin: 1.5rem 0 0;
}

body .tm-scope .tm-unpaid__ssl span {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
	text-align: left;
}

body .tm-scope .tm-unpaid__ssl small {
	font-size: 0.6rem;
}

body .tm-scope .tm-unpaid__ssl strong {
	font-size: 0.8rem;
	font-style: italic;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body .tm-scope .tm-unpaid__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.75rem;
	justify-content: center;
	margin-top: 2.25rem;
}

body .tm-scope .tm-unpaid__links a {
	color: var(--tm-dark);
	font-size: 0.95rem;
	text-decoration: none;
}

body .tm-scope .tm-unpaid__links a:hover,
body .tm-scope .tm-unpaid__links a:focus-visible {
	color: var(--tm-primary);
}

body .tm-scope .tm-unpaid__copy {
	color: var(--tm-dark);
	font-size: 0.9rem;
	margin: 1rem 0 0;
}

/* Payment popup */

html.tm-has-dialog {
	overflow: hidden;
}

body .tm-scope .tm-unpaid__dialog {
	background: #fff;
	border: 0;
	border-radius: var(--tm-radius-lg);
	box-shadow: 0 24px 64px rgba(46, 59, 54, 0.28);
	color: var(--tm-dark);
	max-height: calc(100vh - 2rem);
	max-width: 640px;
	overflow-y: auto;
	padding: 2.25rem 2rem 1.5rem;
	text-align: center;
	width: calc(100% - 2rem);
}

body .tm-scope .tm-unpaid__dialog::backdrop {
	background: rgba(46, 59, 54, 0.55);
}

body .tm-scope .tm-unpaid__dialog h2 {
	color: var(--tm-dark);
	font-size: 1.4rem;
	margin: 0.75rem 0 0.5rem;
}

body .tm-scope .tm-unpaid__dialog > p {
	color: var(--tm-grey);
	margin: 0 0 0.5rem;
}

body .tm-scope .tm-unpaid__dialog .tm-payment__summary,
body .tm-scope .tm-unpaid__dialog .tm-payment__heading,
body .tm-scope .tm-unpaid__dialog .tm-payment__element,
body .tm-scope .tm-unpaid__dialog .tm-form-status {
	text-align: left;
}

body .tm-scope .tm-unpaid__dialog-icon {
	align-items: center;
	background: var(--tm-primary-soft);
	border-radius: 50%;
	color: var(--tm-primary);
	display: inline-flex;
	height: 56px;
	justify-content: center;
	width: 56px;
}

body .tm-scope .tm-unpaid__dialog-icon .tm-icon {
	height: 26px;
	width: 26px;
}

body .tm-scope .tm-unpaid__close {
	align-items: center;
	background: none;
	border: 0;
	border-radius: 50%;
	color: var(--tm-grey);
	cursor: pointer;
	display: flex;
	height: 36px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 0.75rem;
	top: 0.75rem;
	width: 36px;
}

body .tm-scope .tm-unpaid__close:hover,
body .tm-scope .tm-unpaid__close:focus-visible {
	background: var(--tm-offwhite);
	color: var(--tm-dark);
}

body .tm-scope .tm-unpaid__dialog .tm-payment__secure .tm-icon {
	flex-shrink: 0;
	height: 16px;
	width: 16px;
}

body .tm-scope .tm-unpaid__later {
	color: var(--tm-grey);
	font-weight: 500;
	margin-top: 1rem;
}

@media (max-width: 782px) {
	body.admin-bar .tm-scope .tm-unpaid__bar {
		top: 46px;
	}
}

@media (max-width: 600px) {
	body .tm-scope .tm-unpaid__bar {
		gap: 0.75rem;
	}

	body .tm-scope .tm-unpaid__logout span {
		display: none;
	}

	body .tm-scope .tm-unpaid__dialog {
		padding: 2rem 1.1rem 1.25rem;
	}

	body .tm-scope .tm-unpaid__body {
		padding-top: 2.5rem;
	}
}

/* --------------------------------------------------------------------------
   Plan checkout: package choice + Stripe embedded Checkout (assets/js/pay.js)
   -------------------------------------------------------------------------- */

body .tm-scope .tm-plans {
	display: grid;
	gap: 0.6rem;
	margin: 0 0 1.25rem;
	text-align: left;
}

body .tm-scope .tm-plans.is-busy {
	opacity: 0.7;
	pointer-events: none;
}

body .tm-scope .tm-plan {
	align-items: center;
	background: #fff;
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	cursor: pointer;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: auto minmax(0, 1fr) auto;
	padding: 0.85rem 1rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

body .tm-scope .tm-plan:hover {
	border-color: var(--tm-primary);
}

body .tm-scope .tm-plan.is-selected {
	background: var(--tm-primary-softer);
	border-color: var(--tm-primary);
	box-shadow: 0 0 0 1px var(--tm-primary);
}

body .tm-scope .tm-plan input[type="radio"] {
	accent-color: var(--tm-primary);
	height: 18px;
	margin: 0;
	width: 18px;
}

body .tm-scope .tm-plan:focus-within {
	outline: 2px solid var(--tm-primary);
	outline-offset: 2px;
}

body .tm-scope .tm-plan__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

body .tm-scope .tm-plan__head {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

body .tm-scope .tm-plan__name {
	color: var(--tm-dark);
	font-size: 0.98rem;
}

body .tm-scope .tm-plan__badge {
	background: var(--tm-primary);
	border-radius: var(--tm-pill);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	padding: 0.15rem 0.55rem;
	text-transform: uppercase;
}

body .tm-scope .tm-plan__billing,
body .tm-scope .tm-plan__market {
	color: var(--tm-grey);
	font-size: 0.82rem;
}

body .tm-scope .tm-plan__price {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	text-align: right;
	white-space: nowrap;
}

body .tm-scope .tm-plan__price strong {
	color: var(--tm-dark);
	font-size: 1.1rem;
}

body .tm-scope .tm-plan__was {
	color: var(--tm-grey);
	font-size: 0.8rem;
}

body .tm-scope .tm-plan__interval {
	color: var(--tm-grey);
	font-size: 0.78rem;
}

body .tm-scope .tm-checkout {
	min-height: 160px;
	text-align: left;
}

body .tm-scope .tm-checkout .tm-payment__loading {
	min-height: 160px;
}

body .tm-scope .tm-checkout__invoice .tm-btn {
	text-decoration: none;
}

body .tm-scope .tm-checkout__woo {
	padding: 0.25rem 0 0;
}

body .tm-scope .tm-checkout__woo .tm-btn {
	background: var(--tm-secondary-strong);
	border-color: var(--tm-secondary-strong);
	color: #fff;
}

body .tm-scope .tm-checkout__woo .tm-btn:hover,
body .tm-scope .tm-checkout__woo .tm-btn:focus-visible {
	background: var(--tm-olive);
	border-color: var(--tm-olive);
}

body .tm-scope .tm-checkout__note {
	margin: 0.6rem 0 0;
	text-align: center;
}

body .tm-scope .tm-checkout:has(.tm-checkout__woo) {
	min-height: 0;
}

body .tm-scope .tm-plan__features {
	color: var(--tm-text);
	font-size: 0.8rem;
	list-style: disc;
	margin: 0.3rem 0 0 1rem;
	padding: 0;
}

body .tm-scope .tm-payment__checkout .tm-payment__heading,
body .tm-scope .tm-unpaid__checkout .tm-payment__heading {
	text-align: left;
}

body .tm-scope .tm-unpaid__checkout {
	margin-top: 1rem;
}

body .tm-scope .tm-subscription .tm-card__head {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
}

body .tm-scope .tm-paysum .tm-card__head {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
}

body .tm-scope .tm-paysum__list {
	display: grid;
	gap: 0.75rem 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin: 0.5rem 0 0;
}

body .tm-scope .tm-paysum__row {
	background: var(--tm-offwhite);
	border-radius: var(--tm-radius);
	padding: 0.7rem 0.9rem;
}

body .tm-scope .tm-paysum__row dt {
	color: var(--tm-grey);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	margin: 0 0 0.2rem;
	text-transform: uppercase;
}

body .tm-scope .tm-paysum__row dd {
	color: var(--tm-dark);
	font-weight: 600;
	margin: 0;
}

body .tm-scope .tm-paysum__links {
	margin: 1rem 0 0;
}

body .tm-scope .tm-sub-actions {
	justify-content: flex-start;
	margin: 0.75rem 0;
}

body .tm-scope .tm-sub-actions form {
	margin: 0;
}

body .tm-scope .tm-sub-switch {
	border-top: 1px solid var(--tm-border);
	margin-top: 0.75rem;
	padding-top: 0.75rem;
}

body .tm-scope .tm-sub-switch summary {
	cursor: pointer;
	font-weight: 600;
}

body .tm-scope .tm-sub-switch form {
	display: grid;
	gap: 0.5rem;
	margin-top: 0.75rem;
	max-width: 560px;
}

body .tm-scope .tm-sub-switch .tm-btn {
	justify-self: start;
}

body .tm-scope .tm-sub-history__title {
	margin: 1.25rem 0 0.5rem;
}

body .tm-scope .tm-sub-history a {
	margin-left: 0.4rem;
}

@media (max-width: 520px) {
	body .tm-scope .tm-plan {
		grid-template-columns: auto minmax(0, 1fr);
	}

	body .tm-scope .tm-plan__price {
		align-items: baseline;
		flex-direction: row;
		gap: 0.4rem;
		grid-column: 2;
		text-align: left;
	}
}

/* --------------------------------------------------------------------------
   Welcome / start-your-membership screen (assessment.js renderWelcome)
   -------------------------------------------------------------------------- */

body .tm-scope .tm-progress--welcome {
	max-width: 560px;
}

body .tm-scope .tm-progress--welcome .tm-progress__seg.is-done .tm-progress__fill {
	background: var(--tm-secondary-strong);
}

body .tm-scope .tm-progress--welcome .tm-progress__seg.is-current .tm-progress__fill {
	background: var(--tm-secondary);
}

body .tm-scope .tm-card.tm-onb--welcome {
	background: transparent;
	box-shadow: none;
	margin: 0 auto;
	max-width: 720px;
	padding: 0;
}

body .tm-scope .tm-welcome__hero {
	margin: 0 auto 2.25rem;
	max-width: 600px;
	text-align: center;
}

body .tm-scope .tm-onb--welcome .tm-register__title {
	color: var(--tm-dark);
	font-size: clamp(1.6rem, 4vw, 2.1rem);
	margin-bottom: 1.1rem;
}

body .tm-scope .tm-welcome__received {
	align-items: flex-start;
	background: var(--tm-secondary-soft);
	border: 1px solid color-mix(in srgb, var(--tm-secondary) 45%, #fff);
	border-radius: var(--tm-radius);
	display: flex;
	gap: 0.7rem;
	padding: 0.85rem 1rem;
	text-align: left;
}

body .tm-scope .tm-welcome__received .tm-svg {
	color: var(--tm-secondary-strong);
	flex-shrink: 0;
	margin-top: 1px;
}

body .tm-scope .tm-welcome__received p {
	color: var(--tm-dark);
	font-size: 0.92rem;
	margin: 0;
}

body .tm-scope .tm-welcome__guide {
	background: #fff;
	border-radius: var(--tm-radius-lg);
	margin: 0 0 2rem;
	padding: 1.75rem 2rem 1rem;
}

body .tm-scope .tm-welcome__guide .tm-onb__block {
	border-top: 0;
	padding: 0 0 1.1rem;
}

body .tm-scope .tm-welcome__guide .tm-onb__subtitle {
	color: var(--tm-dark);
	font-size: 1.02rem;
	font-weight: 700;
	margin-bottom: 0.4rem;
}

body .tm-scope .tm-welcome__guide p,
body .tm-scope .tm-welcome__guide li {
	color: var(--tm-text);
	font-size: 0.92rem;
	line-height: 1.6;
}

body .tm-scope .tm-welcome__guide .tm-onb__list {
	margin-bottom: 0.4rem;
}

/* Long link buttons in the guide wrap like the text around them. */
body .tm-scope .tm-welcome__guide .tm-link-btn {
	display: inline;
	line-height: 1.6;
	text-align: left;
	text-underline-offset: 3px;
}

@media (max-width: 640px) {
	body .tm-scope .tm-welcome__guide .tm-link-btn {
		font-size: 0.9rem;
	}
}

body .tm-scope .tm-welcome__prices {
	margin-top: 0.25rem;
}

body .tm-scope .tm-welcome__prices summary,
body .tm-scope .tm-welcome__policy summary {
	color: var(--tm-olive);
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 700;
}

body .tm-scope .tm-welcome__prices .tm-price-table {
	margin-top: 0.75rem;
}

/* Benefits card */

body .tm-scope .tm-welcome__benefits {
	background: #FDFBF5;
	border: 1px solid color-mix(in srgb, var(--tm-tan) 55%, #fff);
	border-radius: var(--tm-radius-lg);
	box-shadow: 0 2px 10px rgba(46, 59, 54, 0.06);
	margin: 0 0 2.5rem;
	padding: 1.5rem 1.5rem 1.75rem;
}

body .tm-scope .tm-welcome__benefits h3 {
	color: var(--tm-grey);
	font-size: 0.95rem;
	font-weight: 600;
	margin: 0 0 1.25rem;
}

body .tm-scope .tm-welcome__benefit-list {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body .tm-scope .tm-welcome__benefit {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	text-align: center;
}

body .tm-scope .tm-welcome__ring {
	align-items: center;
	background: #fff;
	border: 6px solid color-mix(in srgb, var(--tm-secondary) 45%, #fff);
	border-radius: 50%;
	box-shadow: 0 0 0 6px color-mix(in srgb, var(--tm-secondary) 16%, #fff);
	color: var(--tm-secondary-strong);
	display: flex;
	height: 78px;
	justify-content: center;
	margin-bottom: 0.6rem;
	width: 78px;
}

body .tm-scope .tm-welcome__ring--talk {
	border-color: color-mix(in srgb, #7FB8C4 50%, #fff);
	box-shadow: 0 0 0 6px color-mix(in srgb, #7FB8C4 16%, #fff);
	color: #3E7F8C;
}

body .tm-scope .tm-welcome__ring .tm-svg {
	color: inherit;
	display: flex;
}

body .tm-scope .tm-welcome__ring .tm-svg svg {
	height: 28px;
	width: 28px;
}

body .tm-scope .tm-welcome__benefit strong {
	color: var(--tm-dark);
	font-size: 0.95rem;
}

body .tm-scope .tm-welcome__benefit span:last-child {
	color: var(--tm-grey);
	font-size: 0.82rem;
	line-height: 1.45;
	max-width: 200px;
}

/* Comparison table */

body .tm-scope .tm-welcome__compare {
	margin: 0 0 2.5rem;
}

body .tm-scope .tm-welcome__center-title {
	color: var(--tm-dark);
	font-size: clamp(1.25rem, 3vw, 1.5rem);
	font-weight: 400;
	margin: 0 0 1.25rem;
	text-align: center;
}

body .tm-scope .tm-compare-wrap {
	overflow-x: auto;
}

body .tm-scope .tm-compare {
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	margin: 0 auto;
	max-width: 720px;
	width: 100%;
}

/* The theme's table reset adds borders on every cell and striped rows; only row dividers are wanted here. */
body .tm-scope .tm-compare th,
body .tm-scope .tm-compare td {
	background: transparent;
	border: 0;
	border-bottom: 1px solid #ECECEC;
	font-size: 0.9rem;
	line-height: 1.4;
	padding: 0.85rem 0.75rem;
	text-align: left;
	vertical-align: middle;
}

body .tm-scope table.tm-compare thead:first-child tr:first-child th,
body .tm-scope table.tm-compare tbody:first-child tr:first-child th,
body .tm-scope table.tm-compare tbody:first-child tr:first-child td {
	border-top: 0;
}

body .tm-scope .tm-compare tbody tr:hover > th,
body .tm-scope .tm-compare tbody tr:hover > td,
body .tm-scope .tm-compare tbody tr:nth-child(odd) > th,
body .tm-scope .tm-compare tbody tr:nth-child(odd) > td {
	background: transparent;
}

body .tm-scope .tm-compare tbody th {
	color: var(--tm-text);
	font-weight: 400;
	padding-left: 0;
}

body .tm-scope .tm-compare thead th {
	border-bottom: 1px solid #ECECEC;
	color: var(--tm-dark);
	font-size: 0.95rem;
	font-weight: 600;
	padding-bottom: 1.1rem;
	padding-top: 1.1rem;
}

body .tm-scope .tm-compare .tm-compare__plan,
body .tm-scope .tm-compare .tm-compare__office {
	text-align: center;
	width: 26%;
}

body .tm-scope .tm-compare tbody tr > td.tm-compare__plan,
body .tm-scope .tm-compare tbody tr:hover > td.tm-compare__plan,
body .tm-scope .tm-compare tbody tr:nth-child(odd) > td.tm-compare__plan {
	background: #fff;
}

body .tm-scope .tm-compare .tm-compare__plan {
	box-shadow: 8px 0 14px -10px rgba(46, 59, 54, 0.18), -8px 0 14px -10px rgba(46, 59, 54, 0.18);
}

body .tm-scope .tm-compare thead .tm-compare__plan {
	background: var(--tm-secondary-strong);
	border-bottom-color: var(--tm-secondary-strong);
	border-radius: var(--tm-radius) var(--tm-radius) 0 0;
	color: #fff;
}

body .tm-scope .tm-compare tbody tr:last-child th,
body .tm-scope .tm-compare tbody tr:last-child td {
	border-bottom: 0;
}

body .tm-scope .tm-compare tbody tr:last-child .tm-compare__plan {
	border-radius: 0 0 var(--tm-radius) var(--tm-radius);
}

body .tm-scope .tm-compare__mark {
	align-items: center;
	border-radius: 4px;
	display: inline-flex;
	height: 22px;
	justify-content: center;
	width: 22px;
}

body .tm-scope .tm-compare__mark.is-yes {
	background: color-mix(in srgb, var(--tm-secondary) 62%, #fff);
	color: var(--tm-olive);
}

body .tm-scope .tm-compare__mark.is-yes .tm-svg svg {
	stroke-width: 2.6;
}

body .tm-scope .tm-compare__mark.is-maybe {
	color: var(--tm-grey);
}

body .tm-scope .tm-compare__mark.is-no {
	color: var(--tm-error);
}

body .tm-scope .tm-compare__mark.is-no .tm-svg svg {
	height: 20px;
	stroke-width: 2.2;
	width: 20px;
}

body .tm-scope .tm-compare__mark.is-maybe .tm-svg svg {
	height: 18px;
	width: 18px;
}

body .tm-scope .tm-compare__mark .tm-svg svg {
	height: 15px;
	width: 15px;
}

/* Pricing + checkout card */

body .tm-scope .tm-welcome__plan {
	background: #fff;
	border: 1px solid #E4E4E4;
	border-radius: var(--tm-radius-lg);
	box-shadow: 0 4px 24px rgba(46, 59, 54, 0.08);
	margin: 0 0 2rem;
	padding: 1.75rem 2rem;
	scroll-margin-top: 1.5rem;
}

body .tm-scope .tm-welcome__plan-title {
	color: var(--tm-dark);
	font-size: 1.2rem;
	margin: 0 0 0.75rem;
}

body .tm-scope .tm-welcome__plan .tm-price__line {
	color: var(--tm-dark);
	font-size: 0.95rem;
	font-weight: 700;
}

body .tm-scope .tm-welcome__plan .tm-price__charge {
	color: var(--tm-olive);
	font-size: 0.92rem;
}

body .tm-scope .tm-welcome__plan .tm-pay-summary {
	background: var(--tm-offwhite);
	border-radius: var(--tm-radius);
	margin: 1rem 0;
	padding: 0.75rem 1rem;
}

body .tm-scope .tm-welcome__plan-cols {
	display: grid;
	gap: 0 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

body .tm-scope .tm-welcome__plan h4 {
	color: var(--tm-dark);
	font-size: 0.92rem;
	margin: 0.5rem 0 0.4rem;
}

body .tm-scope .tm-welcome__plan .tm-onb__list li {
	font-size: 0.88rem;
}

body .tm-scope .tm-welcome__policy {
	border-top: 1px solid #ECECEC;
	margin: 0.5rem 0 0;
	padding: 0.75rem 0;
}

body .tm-scope .tm-welcome__policy .tm-onb__list {
	margin: 0.6rem 0 0;
}

body .tm-scope .tm-welcome__pay {
	border-top: 1px solid #ECECEC;
	margin-top: 0.25rem;
	padding-top: 1.1rem;
}

body .tm-scope .tm-welcome__pay-title {
	align-items: center;
	display: flex;
	gap: 0.4rem;
}

body .tm-scope .tm-welcome__pay-title .tm-svg {
	color: var(--tm-secondary-strong);
}

body .tm-scope .tm-welcome__pay .tm-plan.is-selected {
	background: var(--tm-secondary-soft);
	border-color: var(--tm-secondary-strong);
	box-shadow: 0 0 0 1px var(--tm-secondary-strong);
}

body .tm-scope .tm-welcome__pay .tm-plan__badge {
	background: var(--tm-secondary-strong);
}

body .tm-scope .tm-welcome__pay .tm-plan input[type="radio"] {
	accent-color: var(--tm-secondary-strong);
}

body .tm-scope .tm-welcome__plan-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 1rem 0 0;
}

body .tm-scope .tm-welcome__plan-links a,
body .tm-scope .tm-welcome__plan-links .tm-link-btn {
	font-size: 0.88rem;
}

/* Trust strip */

body .tm-scope .tm-welcome__trust {
	background: linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--tm-tan) 22%, #fff) 100%);
	border-radius: var(--tm-radius-lg);
	padding: 1.5rem 1.25rem 1.25rem;
	text-align: center;
}

body .tm-scope .tm-welcome__crisis {
	color: var(--tm-grey);
	font-size: 0.86rem;
	font-weight: 600;
	margin: 0 auto 0.75rem;
	max-width: 520px;
}

body .tm-scope .tm-welcome__crisis .tm-link-btn {
	text-decoration: none;
}

body .tm-scope .tm-welcome__trust .tm-alert--crisis {
	margin: 0 auto 0.75rem;
	max-width: 520px;
	text-align: left;
}

@media (max-width: 640px) {
	body .tm-scope .tm-welcome__guide,
	body .tm-scope .tm-welcome__plan {
		padding: 1.25rem 1.1rem;
	}

	body .tm-scope .tm-welcome__benefit-list {
		grid-template-columns: minmax(0, 1fr);
	}

	body .tm-scope .tm-welcome__benefit {
		display: grid;
		gap: 0.1rem 0.9rem;
		grid-template-columns: 64px minmax(0, 1fr);
		text-align: left;
	}

	body .tm-scope .tm-welcome__ring {
		grid-row: span 2;
		height: 56px;
		margin: 0;
		width: 56px;
	}

	body .tm-scope .tm-welcome__benefit span:last-child {
		max-width: none;
	}

	body .tm-scope .tm-compare th,
	body .tm-scope .tm-compare td {
		font-size: 0.85rem;
		padding: 0.6rem 0.5rem;
	}
}

/* --------------------------------------------------------------------------
   Subscription plan card with the WooCommerce / Stripe card form
   (welcome screen and the WooCommerce checkout page for a plan)
   -------------------------------------------------------------------------- */

body .tm-scope .tm-welcome__plan--sub,
body .tm-scope .tm-sub-paycard {
	background: color-mix(in srgb, var(--tm-secondary) 9%, #fff);
	border: 1px solid color-mix(in srgb, var(--tm-secondary) 28%, #fff);
	border-radius: var(--tm-radius-lg);
	box-shadow: none;
	padding: 2.25rem 2.5rem;
}

body .tm-scope .tm-welcome__plan--sub .tm-welcome__plan-title,
body .tm-scope .tm-sub-paycard__title {
	color: var(--tm-grey);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

body .tm-scope .tm-price__line--plan,
body .tm-scope .tm-sub-paycard .tm-price__line {
	color: var(--tm-dark);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.55;
	margin: 0 0 1.1rem;
}

body .tm-scope .tm-price__line--plan .tm-price__was {
	font-weight: 700;
}

body .tm-scope .tm-price__info {
	color: var(--tm-olive);
	cursor: help;
	display: inline-flex;
	vertical-align: -3px;
}

body .tm-scope .tm-price__info svg circle {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

body .tm-scope .tm-price__info svg path {
	stroke: currentColor;
}

body .tm-scope .tm-price__note {
	color: var(--tm-grey);
	margin: 0 0 1.1rem;
}

body .tm-scope .tm-welcome__plan--sub .tm-price__charge,
body .tm-scope .tm-sub-paycard .tm-price__charge {
	color: var(--tm-grey);
	font-size: 1rem;
	font-weight: 400;
	margin: 0 0 1.1rem;
}

body .tm-scope .tm-price__charge strong {
	color: var(--tm-dark);
}

body .tm-scope .tm-price__save {
	color: var(--tm-olive);
}

body .tm-scope .tm-price__aid {
	margin: 0 0 1.4rem;
}

body .tm-scope .tm-price__aid .tm-link-btn {
	color: var(--tm-olive);
	font-size: 1rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body .tm-scope .tm-welcome__pay-start,
body .tm-scope .tm-sub-paycard__lock {
	align-items: center;
	color: var(--tm-grey);
	display: flex;
	gap: 0.45rem;
	margin: 0 0 0.9rem;
}

body .tm-scope .tm-welcome__pay-start .tm-svg {
	color: var(--tm-dark);
}

body .tm-scope .tm-welcome__plan--sub .tm-welcome__policy {
	margin-top: 1.25rem;
}

/* The WooCommerce checkout: only the payment form and the Start therapy button. */

body .tm-scope .tm-woo-pay .woocommerce-form-coupon-toggle,
body .tm-scope .tm-woo-pay .checkout_coupon,
body .tm-scope .tm-woo-pay #customer_details,
body .tm-scope .tm-woo-pay #order_review_heading,
body .tm-scope .tm-woo-pay .woocommerce-checkout-review-order-table,
body.tm-sub-checkout #customer_details,
body.tm-sub-checkout #order_review_heading,
body.tm-sub-checkout .woocommerce-checkout-review-order-table,
body .tm-sub-account-field {
	display: none !important;
}

body .tm-scope .tm-woo-pay form.checkout,
body.tm-sub-checkout form.checkout {
	display: block;
	margin: 0;
}

body .tm-scope .tm-woo-pay #order_review,
body.tm-sub-checkout #order_review {
	float: none;
	margin: 0;
	padding: 0;
	width: 100%;
}

body .tm-scope .tm-woo-pay #payment,
body.tm-sub-checkout #payment {
	background: transparent;
	border-radius: 0;
}

body .tm-scope .tm-woo-pay #payment ul.payment_methods,
body.tm-sub-checkout #payment ul.payment_methods {
	border: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

body .tm-scope .tm-woo-pay #payment ul.payment_methods > li,
body.tm-sub-checkout #payment ul.payment_methods > li {
	list-style: none;
	margin: 0 0 0.75rem;
}

/* One Stripe method: its radio and title are not needed. */
body .tm-scope .tm-woo-pay #payment ul.payment_methods > li:only-child > input.input-radio,
body .tm-scope .tm-woo-pay #payment ul.payment_methods > li:only-child > label,
body.tm-sub-checkout #payment ul.payment_methods > li:only-child > input.input-radio,
body.tm-sub-checkout #payment ul.payment_methods > li:only-child > label {
	display: none;
}

body .tm-scope .tm-woo-pay #payment div.payment_box,
body.tm-sub-checkout #payment div.payment_box {
	background: transparent;
	color: inherit;
	margin: 0;
	padding: 0;
}

body .tm-scope .tm-woo-pay #payment div.payment_box::before,
body.tm-sub-checkout #payment div.payment_box::before {
	display: none;
}

body .tm-scope .tm-woo-pay #payment div.form-row,
body.tm-sub-checkout #payment div.form-row {
	padding: 0;
}

body .tm-scope .tm-woo-pay .woocommerce-privacy-policy-text,
body.tm-sub-checkout .woocommerce-privacy-policy-text {
	color: var(--tm-grey);
	font-size: 0.82rem;
	margin: 0.75rem 0 1rem;
}

body .tm-scope .tm-woo-pay .place-order,
body.tm-sub-checkout .place-order {
	align-items: center;
	display: flex !important;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
	margin: 0 !important;
}

/* Empty terms / privacy box (no terms page or privacy text set): no blank row above the button. */
body .tm-scope .tm-woo-pay .woocommerce-privacy-policy-text:empty,
body .tm-scope .tm-woo-pay .woocommerce-terms-and-conditions-wrapper:not(:has(input, a, p, label)),
body.tm-sub-checkout .woocommerce-privacy-policy-text:empty,
body.tm-sub-checkout .woocommerce-terms-and-conditions-wrapper:not(:has(input, a, p, label)) {
	display: none;
}

body .tm-scope .tm-woo-pay #place_order,
body.tm-sub-checkout #place_order {
	background: color-mix(in srgb, var(--tm-secondary) 70%, #fff);
	border: 0;
	border-radius: var(--tm-pill);
	color: var(--tm-dark);
	cursor: pointer;
	float: none;
	font-size: 1.15rem;
	font-weight: 600;
	min-height: 56px;
	padding: 0.85rem 2.5rem;
	transition: background 0.15s ease;
	width: auto;
}

body .tm-scope .tm-woo-pay #place_order:hover,
body .tm-scope .tm-woo-pay #place_order:focus-visible,
body.tm-sub-checkout #place_order:hover,
body.tm-sub-checkout #place_order:focus-visible {
	background: var(--tm-secondary);
	color: #fff;
}

body .tm-scope .tm-woo-pay .place-order .woocommerce-terms-and-conditions-wrapper {
	flex-basis: 100%;
}

body .tm-scope .tm-link-btn.tm-woo-afford,
body .tm-scope .tm-link-btn.tm-woo-afford:hover,
body .tm-scope .tm-link-btn.tm-woo-afford:focus,
body .tm-scope .tm-link-btn.tm-woo-afford:active {
	background: none;
	box-shadow: none;
	color: var(--tm-olive);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
	padding: 0;
	text-decoration: none;
	transform: none;
	transition: color 0.15s ease;
}

body .tm-scope .tm-link-btn.tm-woo-afford:hover,
body .tm-scope .tm-link-btn.tm-woo-afford:focus-visible {
	color: var(--tm-dark);
}

body .tm-scope .tm-woo-pay .woocommerce-NoticeGroup,
body .tm-scope .tm-woo-pay .woocommerce-error {
	margin: 0 0 1rem;
}

body .tm-scope .tm-woo-pay .blockUI.blockOverlay {
	border-radius: var(--tm-radius);
}

body.tm-sub-checkout .tm-sub-paycard {
	margin: 0 auto 1.5rem;
	max-width: 760px;
}

body.tm-sub-checkout form.checkout {
	margin: 0 auto;
	max-width: 760px;
}

@media (max-width: 640px) {
	body .tm-scope .tm-welcome__plan--sub,
	body .tm-scope .tm-sub-paycard {
		padding: 1.5rem 1.15rem;
	}

	body .tm-scope .tm-woo-pay #place_order,
	body.tm-sub-checkout #place_order {
		width: 100%;
	}
}
