.tat2omni-chatty {
	--chatty-surface: #ffffff;
	--chatty-surface-soft: #f5f7fb;
	--chatty-text: #101828;
	--chatty-muted: #667085;
	--chatty-line: color-mix(in srgb, var(--tat2omni-border-accent) 52%, #d0d5dd);
	--tat2omni-chatty-launcher-size: var(--tat2omni-chatty-launcher-desktop-size, 62px);
	position: fixed;
	right: var(--tat2omni-chatty-right, 24px);
	bottom: var(--tat2omni-chatty-bottom, 24px);
	/* Match the theme's closed floating controls; the open dialog elevates separately. */
	z-index: 100;
	font: inherit;
	color: var(--chatty-text);
}

.tat2omni-chatty.is-open {
	/* Only the open assistant and its close control belong above fixed navigation. */
	z-index: 2147483647;
}

.tat2omni-chatty[data-booking-theme="dark"] {
	--chatty-surface: #090b11;
	--chatty-surface-soft: #121722;
	--chatty-text: #f8fafc;
	--chatty-muted: #b7c0d0;
	--chatty-line: color-mix(in srgb, var(--tat2omni-border-accent) 64%, #344054);
}

.tat2omni-chatty *, .tat2omni-chatty *::before, .tat2omni-chatty *::after { box-sizing: border-box; }
.tat2omni-chatty [hidden] { display: none !important; }
.tat2omni-chatty .screen-reader-text { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.tat2omni-chatty__launcher {
	display: grid;
	place-items: center;
	width: var(--tat2omni-chatty-launcher-size);
	height: var(--tat2omni-chatty-launcher-size);
	margin-left: auto;
	padding: 0;
	border: 2px solid var(--tat2omni-border-accent);
	border-radius: 50%;
	background: linear-gradient(135deg, var(--tat2omni-main), var(--tat2omni-accent));
	box-shadow: 0 18px 44px rgba(0,0,0,.32), 0 0 0 6px color-mix(in srgb, var(--tat2omni-main) 15%, transparent);
	color: var(--tat2omni-on-main);
	cursor: pointer;
	transition: opacity .2s ease, visibility .2s ease, transform .2s ease, box-shadow .2s ease;
}

.tat2omni-chatty__launcher:hover, .tat2omni-chatty__launcher:focus-visible { transform: translateY(-3px) scale(1.03); box-shadow: 0 22px 52px rgba(0,0,0,.38), 0 0 0 7px color-mix(in srgb, var(--tat2omni-accent) 20%, transparent); }
.tat2omni-chatty__launcher:focus-visible { outline: 3px solid color-mix(in srgb, var(--tat2omni-main) 42%, white); outline-offset: 3px; }
.tat2omni-chatty__launcher svg { width: 46.775%; height: 46.775%; fill: currentColor; }
.tat2omni-chatty.is-open .tat2omni-chatty__launcher { opacity: 0; pointer-events: none; transform: scale(.75); }
.tat2omni-chatty.is-theme-floating-hidden:not(.is-open) .tat2omni-chatty__launcher { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(10px) scale(.82); }

.tat2omni-chatty__dialog {
	position: absolute;
	right: 0;
	bottom: 0;
	display: grid;
	grid-template-rows: auto minmax(0,1fr) auto;
	width: min(470px, calc(100vw - 28px));
	height: min(780px, calc(100dvh - 28px));
	max-height: calc(100vh - 28px);
	overflow: hidden;
	border: 1px solid var(--chatty-line);
	border-radius: 24px;
	background: var(--chatty-surface);
	box-shadow: 0 28px 90px rgba(0,0,0,.48);
	color: var(--chatty-text);
	isolation: isolate;
}

.tat2omni-chatty__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 76px;
	padding: 13px 14px 13px 16px;
	border-bottom: 1px solid color-mix(in srgb, var(--tat2omni-border-accent) 65%, transparent);
	background: linear-gradient(115deg, var(--tat2omni-main), color-mix(in srgb, var(--tat2omni-accent) 82%, var(--tat2omni-main)));
	color: var(--tat2omni-on-main);
}

.tat2omni-chatty__identity { display: flex; align-items: center; gap: 11px; min-width: 0; }
.tat2omni-chatty__identity > span:last-child { display: grid; gap: 1px; min-width: 0; }
.tat2omni-chatty__identity small { color: inherit; font-size: var(--chatty-font-11, var(--tat2omni-font-size-11, 11px)); font-weight: 800; letter-spacing: .08em; line-height: 1.2; opacity: .82; text-transform: uppercase; }
.tat2omni-chatty__identity strong { overflow: hidden; color: inherit; font-size: var(--chatty-font-21, var(--tat2omni-font-size-21, 21px)); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.tat2omni-chatty__avatar { display: grid; place-items: center; flex: 0 0 43px; width: 43px; height: 43px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(255,255,255,.16); }
.tat2omni-chatty__avatar svg { width: 23px; height: 23px; fill: currentColor; }
.tat2omni-chatty__header-actions { display: flex; gap: 7px; }
.tat2omni-chatty__header-actions button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: rgba(0,0,0,.16); color: inherit; font: inherit; font-size: 24px; line-height: 1; cursor: pointer; }
.tat2omni-chatty__header-actions button:first-child { font-size: 20px; }
.tat2omni-chatty__header-actions button:hover, .tat2omni-chatty__header-actions button:focus-visible { background: rgba(255,255,255,.22); outline: none; }

.tat2omni-chatty__body { min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-color: var(--tat2omni-main) transparent; }
.tat2omni-chatty__body.is-chatty-positioning { overflow: hidden; overscroll-behavior: none; touch-action: none; }
.tat2omni-chatty__transcript { display: grid; gap: 10px; padding: 16px 16px 8px; }
.tat2omni-chatty__transcript.is-experience { padding-top: 0; padding-bottom: 18px; }
.tat2omni-chatty__message { display: flex; align-items: flex-end; gap: 8px; max-width: 92%; animation: tat2omni-chatty-rise .24s ease both; }
.tat2omni-chatty__message.is-user { justify-self: end; flex-direction: row-reverse; }
.tat2omni-chatty__message-avatar { display: grid; place-items: center; flex: 0 0 27px; width: 27px; height: 27px; border-radius: 50%; background: linear-gradient(135deg, var(--tat2omni-main), var(--tat2omni-accent)); color: var(--tat2omni-on-main); font-size: var(--chatty-font-12, var(--tat2omni-font-size-12, 12px)); font-weight: 900; }
.tat2omni-chatty__message.is-user .tat2omni-chatty__message-avatar.has-customer-name { flex-basis: auto; width: auto; min-width: 27px; max-width: 96px; padding: 0 8px; border-radius: 999px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tat2omni-chatty__message-bubble { padding: 11px 13px; border: 1px solid var(--chatty-line); border-radius: 16px 16px 16px 5px; background: var(--chatty-surface-soft); color: var(--chatty-text); font-size: var(--chatty-font-14, var(--tat2omni-font-size-14, 14px)); line-height: 1.52; overflow-wrap: anywhere; }
.tat2omni-chatty__message.is-user .tat2omni-chatty__message-bubble { border-color: transparent; border-radius: 16px 16px 5px 16px; background: var(--tat2omni-main); color: var(--tat2omni-on-main); }
.tat2omni-chatty__typing { display: inline-flex; align-items: center; gap: 4px; min-width: 38px; min-height: 11px; }
.tat2omni-chatty__typing i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .42; animation: tat2omni-chatty-dot 1s infinite ease-in-out; }
.tat2omni-chatty__typing i:nth-child(2) { animation-delay: .14s; }
.tat2omni-chatty__typing i:nth-child(3) { animation-delay: .28s; }

.tat2omni-chatty__surface { display: grid; gap: 10px; padding: 8px 16px 18px; min-width: 0; }
.tat2omni-chatty__choices { display: grid; gap: 9px; }
.tat2omni-chatty__choice, .tat2omni-chatty__continue, .tat2omni-chatty__send {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: 1px solid var(--chatty-line);
	border-radius: 13px;
	background: var(--chatty-surface-soft);
	color: var(--chatty-text);
	font: inherit;
	font-size: var(--chatty-font-14, var(--tat2omni-font-size-14, 14px));
	font-weight: 800;
	line-height: 1.25;
	text-align: left;
	cursor: pointer;
	transition: border-color .18s ease, transform .18s ease, background .18s ease;
}
.tat2omni-chatty__choice::after { content: '›'; color: var(--tat2omni-main); font-size: 24px; line-height: 1; }
.tat2omni-chatty__choice:hover, .tat2omni-chatty__choice:focus-visible { border-color: var(--tat2omni-main); background: color-mix(in srgb, var(--tat2omni-main) 9%, var(--chatty-surface)); transform: translateY(-1px); outline: none; }
.tat2omni-chatty__choice.is-whatsapp { border-color: #25d366; }
.tat2omni-chatty__choice.is-whatsapp::after { content: '↗'; color: #159447; }
.tat2omni-chatty__search-results a { text-decoration: none; }
.tat2omni-chatty__search-results .tat2omni-chatty__choice > span { display: grid; gap: 3px; min-width: 0; }
.tat2omni-chatty__search-results .tat2omni-chatty__choice strong { color: inherit; font: inherit; font-weight: 800; overflow-wrap: anywhere; }
.tat2omni-chatty__search-results .tat2omni-chatty__choice small { color: var(--chatty-muted); font-size: var(--chatty-font-11, var(--tat2omni-font-size-11, 11px)); font-weight: 700; }

.tat2omni-chatty__step-help {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: auto;
	min-height: 40px;
	margin: 0 0 15px;
	padding: 8px 13px;
	border: 1px solid var(--tat2omni-main);
	border-radius: 999px;
	background: color-mix(in srgb, var(--tat2omni-main) 10%, var(--chatty-surface));
	color: var(--chatty-text);
	font: inherit;
	font-size: var(--chatty-font-13, var(--tat2omni-font-size-13, 13px));
	font-weight: 800;
	cursor: pointer;
}
.tat2omni-chatty__step-help > span { display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; background: var(--tat2omni-main); color: var(--tat2omni-on-main); font-weight: 900; }
.tat2omni-chatty__step-help:hover, .tat2omni-chatty__step-help:focus-visible { background: color-mix(in srgb, var(--tat2omni-main) 18%, var(--chatty-surface)); outline: none; }
.tat2omni-chatty__step-help:disabled { cursor: wait; opacity: .62; }
.tat2omni-chatty__form-return { display: flex; justify-content: flex-start; padding-left: 35px; }
.tat2omni-chatty__go-to-form {
	min-height: 42px;
	padding: 9px 15px;
	border: 1px solid var(--tat2omni-main);
	border-radius: 11px;
	background: var(--tat2omni-main);
	color: var(--tat2omni-on-main);
	font: inherit;
	font-size: var(--chatty-font-13, var(--tat2omni-font-size-13, 13px));
	font-weight: 800;
	cursor: pointer;
}
.tat2omni-chatty__go-to-form::after { content: ' ↑'; }
.tat2omni-chatty__go-to-form:hover, .tat2omni-chatty__go-to-form:focus-visible { filter: brightness(1.08); outline: none; }

.tat2omni-chatty__field { display: grid; gap: 7px; }
.tat2omni-chatty__field label { color: var(--chatty-text); font-size: var(--chatty-font-13, var(--tat2omni-font-size-13, 13px)); font-weight: 800; }
.tat2omni-chatty__field input, .tat2omni-chatty__field textarea, .tat2omni-chatty__field select {
	width: 100%;
	min-width: 0;
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid var(--chatty-line);
	border-radius: 11px;
	background: var(--chatty-surface);
	box-shadow: none;
	color: var(--chatty-text);
	font: inherit;
	font-size: var(--chatty-font-16, var(--tat2omni-font-size-16, 16px));
}
.tat2omni-chatty__field textarea { min-height: 116px; resize: vertical; }
.tat2omni-chatty__field input:focus, .tat2omni-chatty__field textarea:focus, .tat2omni-chatty__field select:focus { border-color: var(--tat2omni-main); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tat2omni-main) 18%, transparent); outline: none; }
.tat2omni-chatty__continue, .tat2omni-chatty__send { justify-content: center; border-color: var(--tat2omni-main); background: var(--tat2omni-main); color: var(--tat2omni-on-main); text-align: center; }
.tat2omni-chatty__continue:hover, .tat2omni-chatty__continue:focus-visible, .tat2omni-chatty__send:hover, .tat2omni-chatty__send:focus-visible { filter: brightness(1.06); outline: none; }
.tat2omni-chatty__continue:disabled, .tat2omni-chatty__send:disabled { cursor: wait; opacity: .65; }
.tat2omni-chatty__error { padding: 10px 12px; border: 1px solid #ef8080; border-radius: 10px; background: color-mix(in srgb, #b42318 12%, var(--chatty-surface)); color: #d92d20; font-size: var(--chatty-font-13, var(--tat2omni-font-size-13, 13px)); font-weight: 700; }

.tat2omni-chatty__footer { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 34px; padding: 8px 12px; border-top: 1px solid var(--chatty-line); background: var(--chatty-surface-soft); color: var(--chatty-muted); font-size: var(--chatty-font-11, var(--tat2omni-font-size-11, 11px)); font-weight: 700; letter-spacing: .03em; }
.tat2omni-chatty__status-dot { width: 7px; height: 7px; border-radius: 50%; background: #12b76a; box-shadow: 0 0 0 3px color-mix(in srgb, #12b76a 18%, transparent); }

/* Existing transactional forms remain authoritative, but are compacted for the guided panel. */
.tat2omni-chatty__surface > .tat2omni-booking { width: 100%; min-width: 0; margin: 0; color: var(--chatty-text); }
.tat2omni-chatty__surface .tat2omni-booking__shell { width: 100%; min-width: 0; margin: 0; border: 0; border-radius: 14px; box-shadow: none; background: transparent; }
.tat2omni-chatty__surface .tat2omni-booking__header, .tat2omni-chatty__surface .tat2omni-booking__steps { display: none !important; }
.tat2omni-chatty__surface .tat2omni-booking__panel { min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.tat2omni-chatty__surface .tat2omni-booking__section-heading { margin: 0 0 12px; }
.tat2omni-chatty__surface .tat2omni-booking__section-heading > span { display: none; }
.tat2omni-chatty__surface .tat2omni-booking__section-heading h3 { color: var(--chatty-text); font-size: var(--chatty-font-20, var(--tat2omni-font-size-20, 20px)); }
.tat2omni-chatty__surface .tat2omni-booking__section-heading p { color: var(--chatty-muted); font-size: var(--chatty-font-13, var(--tat2omni-font-size-13, 13px)); }
.tat2omni-chatty__surface .tat2omni-booking__field-grid, .tat2omni-chatty__surface .tat2omni-booking__invoice-layout { grid-template-columns: 1fr !important; }
.tat2omni-chatty__surface .tat2omni-booking__service-grid, .tat2omni-chatty__surface .tat2omni-booking__staff-grid { grid-template-columns: 1fr !important; }
.tat2omni-chatty__surface .tat2omni-booking__days {
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 14px;
	max-width: 100%;
	min-width: 0;
	margin-top: 16px;
	padding: 15px;
}
.tat2omni-chatty__surface .tat2omni-booking__days > div { min-width: 0; }
.tat2omni-chatty__surface .tat2omni-booking__day-options { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; min-width: 0; }
.tat2omni-chatty__surface .tat2omni-booking__day-options label, .tat2omni-chatty__surface .tat2omni-booking__day-options span { min-width: 0; }
.tat2omni-chatty__surface .tat2omni-booking__day-options span { overflow-wrap: anywhere; white-space: normal; }
.tat2omni-chatty__surface .tat2omni-booking__actions { align-items: stretch; gap: 9px; flex-wrap: wrap; }
.tat2omni-chatty__surface .tat2omni-booking__actions > * { min-width: 0; }
.tat2omni-chatty__surface .tat2omni-booking__button { max-width: 100%; white-space: normal; }
.tat2omni-chatty__surface .tat2omni-booking__loading { min-height: 190px; border-radius: 14px; }
.tat2omni-chatty__surface .tat2omni-booking__slot-modal, .tat2omni-chatty__surface [data-customer-login-modal], .tat2omni-chatty__surface [data-customer-identity-modal], .tat2omni-chatty__surface [data-sms-verification-modal] { z-index: 1000020 !important; }
.tat2omni-chatty__surface .tat2omni-booking__invoice { position: static; }
.tat2omni-chatty__surface .tat2omni-booking__coupon > label > div { grid-template-columns: minmax(0,1fr) auto; }
.tat2omni-chatty__surface .tat2omni-booking__calendar { min-width: 0; overflow: hidden; }
.tat2omni-chatty__surface .tat2omni-booking__calendar-grid { min-width: 0; }
.tat2omni-chatty__surface .tat2omni-booking__calendar > header { gap: 8px; padding: 13px 10px; }
.tat2omni-chatty__surface .tat2omni-booking__calendar > header > div { min-width: 0; }
.tat2omni-chatty__surface .tat2omni-booking__calendar > header strong, .tat2omni-chatty__surface .tat2omni-booking__calendar > header small { overflow-wrap: anywhere; }
.tat2omni-chatty__surface .tat2omni-booking__calendar-weekdays span { min-width: 0; padding: 9px 1px; font-size: var(--chatty-font-9, var(--tat2omni-font-size-9, 9px)); }
.tat2omni-chatty__surface .tat2omni-booking__calendar-grid > i, .tat2omni-chatty__surface .tat2omni-booking__calendar-grid > button { min-width: 0; min-height: 54px; padding: 5px 3px; }
.tat2omni-chatty__surface .tat2omni-booking__calendar-grid > button > strong { font-size: var(--chatty-font-12, var(--tat2omni-font-size-12, 12px)); }
.tat2omni-chatty__surface .tat2omni-booking__calendar-grid > button > small { font-size: 0; margin-top: 9px; }
.tat2omni-chatty__surface .tat2omni-booking__calendar-grid > button > small::after { content: 'Open'; font-size: var(--chatty-font-8, var(--tat2omni-font-size-8, 8px)); }
.tat2omni-chatty__surface .tat2omni-booking__payment-acknowledgement { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }

/* Chatty is intentionally narrow, so add-ons always use the mobile-first stack. */
.tat2omni-chatty__surface .tat2omni-booking__addon {
	display: grid;
	grid-template-columns: minmax(0, 1fr) !important;
	min-width: 0;
}
.tat2omni-chatty__surface .tat2omni-booking__addon > img,
.tat2omni-chatty__surface .tat2omni-booking__addon-placeholder {
	aspect-ratio: 16 / 7;
	height: auto;
	max-height: 190px;
	min-height: 130px;
	object-fit: cover;
	width: 100%;
}
.tat2omni-chatty__surface .tat2omni-booking__addon-copy {
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr) !important;
	min-width: 0;
	padding: 15px;
}
.tat2omni-chatty__surface .tat2omni-booking__addon-copy header,
.tat2omni-chatty__surface .tat2omni-booking__addon-copy header > div,
.tat2omni-chatty__surface .tat2omni-booking__addon-copy p {
	max-width: 100%;
	min-width: 0;
	width: 100%;
}
.tat2omni-chatty__surface .tat2omni-booking__addon-copy header > div {
	align-items: baseline;
	flex-direction: row;
	flex-wrap: wrap;
}
.tat2omni-chatty__surface .tat2omni-booking__addon-copy p {
	overflow-wrap: anywhere;
	white-space: normal;
}
.tat2omni-chatty__surface .tat2omni-booking__addon-quantity {
	align-self: auto;
	border-top: 1px solid var(--chatty-line);
	justify-content: start;
	justify-self: stretch;
	padding-top: 14px;
	width: 100%;
}
.tat2omni-chatty__surface .tat2omni-booking__addon-summary {
	align-items: flex-start;
	gap: 10px;
}

.tat2omni-chatty__gift-picker { display: grid; gap: 7px; margin-bottom: 12px; }
.tat2omni-chatty__gift-picker label { color: var(--chatty-text); font-size: var(--chatty-font-13, var(--tat2omni-font-size-13, 13px)); font-weight: 800; }
.tat2omni-chatty__gift-picker select { width: 100%; min-height: 49px; padding: 8px 12px; border: 1px solid var(--chatty-line); border-radius: 11px; background: var(--chatty-surface); color: var(--chatty-text); font: inherit; font-size: var(--chatty-font-16, var(--tat2omni-font-size-16, 16px)); }
.tat2omni-chatty__surface .tat2omni-giftcards__catalog.is-chatty-select { display: none !important; }

@keyframes tat2omni-chatty-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes tat2omni-chatty-dot { 0%,60%,100% { transform: translateY(0); opacity: .35; } 30% { transform: translateY(-4px); opacity: .9; } }

@media (max-width: 600px) {
	body.tat2omni-chatty-open #mobile-menu,
	body.tat2omni-chatty-open .mobile-menu-icon,
	body.tat2omni-chatty-open .tat2omni_menu,
	body.tat2omni-chatty-open #tat2omni-menu-panel {
		visibility: hidden !important;
		pointer-events: none !important;
	}

	.tat2omni-chatty {
		--tat2omni-chatty-launcher-size: var(--tat2omni-chatty-launcher-mobile-size, 56px);
		right: calc(var(--tat2omni-chatty-right, 24px) + env(safe-area-inset-right, 0px));
		bottom: calc(var(--tat2omni-chatty-bottom, 24px) + env(safe-area-inset-bottom, 0px));
	}
	.tat2omni-chatty__dialog { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
	.tat2omni-chatty__header { min-height: 68px; padding: calc(10px + env(safe-area-inset-top, 0px)) calc(11px + env(safe-area-inset-right, 0px)) 10px calc(13px + env(safe-area-inset-left, 0px)); }
	.tat2omni-chatty__identity strong { font-size: var(--chatty-font-18, var(--tat2omni-font-size-18, 18px)); }
	.tat2omni-chatty__transcript { padding: 13px 12px 7px; }
	.tat2omni-chatty__surface { padding: 7px max(12px, env(safe-area-inset-right, 0px)) 14px max(12px, env(safe-area-inset-left, 0px)); }
	.tat2omni-chatty__footer { padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); }
	.tat2omni-chatty__surface .tat2omni-booking__field-grid { gap: 11px; }
	.tat2omni-chatty__surface .tat2omni-booking__actions { display: grid; grid-template-columns: 1fr; }
	.tat2omni-chatty__surface .tat2omni-booking__actions .tat2omni-booking__button { width: 100%; }
}

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