/* ==========================================================================
   Green Gourmet AI Assistant — стили виджета
   Важно: виджет встраивается в произвольную тему WordPress, поэтому все
   базовые свойства (фон, рамки, тени, шрифт кнопок) задаются с !important,
   чтобы глобальные стили темы (например, кастомные стили <button>) не могли
   испортить внешний вид кнопок и иконок.
   ========================================================================== */

#ggtg-ai-root, #ggtg-ai-root * {
	box-sizing: border-box !important;
}
#ggtg-ai-root button {
	all: unset !important;
	box-sizing: border-box !important;
	cursor: pointer !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
#ggtg-ai-root button::before,
#ggtg-ai-root button::after {
	content: none !important;
}
#ggtg-ai-root svg {
	display: block !important;
}

/* ---------- Плавающая кнопка (FAB) ---------- */
.ggtg-fab {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 999999;
	width: 60px;
	height: 60px;
	border-radius: 50% !important;
	background: var(--ggtg-primary, #2f7d4f) !important;
	box-shadow: 0 8px 24px rgba(0,0,0,.22) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: transform .2s ease;
}
.ggtg-fab.left { right: auto; left: 24px; }
.ggtg-fab:hover { transform: scale(1.06); }
.ggtg-fab svg { width: 26px; height: 26px; fill: #fff !important; stroke: none !important; }
.ggtg-fab .ggtg-badge {
	position: absolute;
	top: -2px; right: -2px;
	width: 13px; height: 13px;
	border-radius: 50% !important;
	background: #ff6b57 !important;
	border: 2px solid #fff !important;
}

/* ---------- Teaser (proactive-подсказка) ---------- */
.ggtg-teaser {
	position: fixed;
	bottom: 92px;
	right: 24px;
	z-index: 999998;
	max-width: 250px;
	background: #fff !important;
	border-radius: 16px !important;
	box-shadow: 0 12px 32px rgba(0,0,0,.18) !important;
	padding: 12px 30px 12px 14px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 13.5px;
	line-height: 1.4;
	color: #26332c !important;
	cursor: pointer;
	opacity: 0;
	transform: translateY(8px) scale(.97);
	transition: opacity .25s ease, transform .25s ease;
}
.ggtg-teaser.left { right: auto; left: 24px; }
.ggtg-teaser.show { opacity: 1; transform: translateY(0) scale(1); }
.ggtg-teaser::after {
	content: '';
	position: absolute;
	bottom: -8px; right: 26px;
	width: 16px; height: 16px;
	background: #fff;
	transform: rotate(45deg);
}
.ggtg-teaser.left::after { right: auto; left: 26px; }
.ggtg-teaser-close {
	position: absolute !important;
	top: 4px; right: 6px;
	width: 24px !important; height: 24px !important;
	display: flex !important; align-items: center; justify-content: center;
	font-size: 17px !important; line-height: 1 !important;
	color: #9aa79f !important;
}

/* ---------- Окно чата ---------- */
.ggtg-window {
	position: fixed;
	bottom: 96px;
	right: 24px;
	z-index: 999999;
	width: 380px;
	max-width: calc(100vw - 32px);
	height: 78vh;
	max-height: 620px;
	background: #fff !important;
	border-radius: 18px !important;
	box-shadow: 0 20px 60px rgba(0,0,0,.25) !important;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	opacity: 0;
	transform: translateY(16px) scale(.98);
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
}
.ggtg-window.left { right: auto; left: 24px; }
.ggtg-window.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }

.ggtg-header {
	background: var(--ggtg-primary, #2f7d4f) !important;
	color: #fff !important;
	padding: 14px 12px 14px 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}
.ggtg-header .ggtg-avatar {
	width: 34px; height: 34px;
	flex: 0 0 auto;
	border-radius: 50% !important;
	background: rgba(255,255,255,.2) !important;
	display: flex; align-items: center; justify-content: center;
	font-size: 16px;
}
.ggtg-header-text { min-width: 0; flex: 1 1 auto; }
.ggtg-header .ggtg-title { font-weight: 600 !important; font-size: 14.5px !important; color: #fff !important; }
.ggtg-header .ggtg-subtitle {
	font-size: 11.5px !important; opacity: .85; color: #fff !important;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ggtg-header .ggtg-close {
	flex: 0 0 auto;
	width: 32px !important; height: 32px !important;
	display: flex !important; align-items: center; justify-content: center;
	color: #fff !important;
	font-size: 22px !important; line-height: 1 !important;
	opacity: .9;
	border-radius: 50% !important;
}
.ggtg-header .ggtg-close:hover { opacity: 1; background: rgba(255,255,255,.15) !important; }

.ggtg-messages {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 16px;
	background: #fafaf8 !important;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ggtg-msg { max-width: 85%; font-size: 14px; line-height: 1.45; }
.ggtg-msg.user { align-self: flex-end; }
.ggtg-msg.assistant { align-self: flex-start; }
.ggtg-bubble {
	padding: 10px 14px;
	border-radius: 14px !important;
}
.ggtg-msg.user .ggtg-bubble {
	background: var(--ggtg-primary, #2f7d4f) !important;
	color: #fff !important;
	border-bottom-right-radius: 4px !important;
}
.ggtg-msg.assistant .ggtg-bubble {
	background: var(--ggtg-accent, #e8f5ec) !important;
	color: #1e2b22 !important;
	border-bottom-left-radius: 4px !important;
}
.ggtg-msg.assistant .ggtg-bubble a { color: var(--ggtg-primary, #2f7d4f) !important; font-weight: 600; }

.ggtg-articles {
	display: flex; flex-direction: column; gap: 6px; margin-top: 6px;
}
.ggtg-article-chip {
	display: block;
	font-size: 12.5px;
	padding: 8px 10px;
	border-radius: 10px !important;
	background: #fff !important;
	border: 1px solid #e3e8e3 !important;
	color: #245a3a !important;
	text-decoration: none !important;
}
.ggtg-article-chip:hover { border-color: var(--ggtg-primary, #2f7d4f) !important; }

.ggtg-typing { display: flex; gap: 4px; padding: 10px 14px; }
.ggtg-typing span {
	width: 6px; height: 6px; border-radius: 50% !important;
	background: #9aa79f !important; display: inline-block;
	animation: ggtg-bounce 1.2s infinite ease-in-out;
}
.ggtg-typing span:nth-child(2) { animation-delay: .15s; }
.ggtg-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes ggtg-bounce { 0%,60%,100% { transform: translateY(0); } 30% { transform: translateY(-4px); } }

.ggtg-lead-box {
	margin: 4px 0 0;
	padding: 12px;
	background: #fff !important;
	border: 1px solid #e3e8e3 !important;
	border-radius: 12px !important;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ggtg-lead-box p { margin: 0; font-size: 13px; color: #33413a !important; }
.ggtg-lead-box input[type=text], .ggtg-lead-box input[type=email] {
	all: revert !important;
	padding: 9px 10px !important;
	border: 1px solid #d8ded8 !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	width: 100% !important;
	background: #fff !important;
	color: #26332c !important;
	box-sizing: border-box !important;
}
.ggtg-lead-box label {
	font-size: 11.5px !important; color: #5a6a60 !important; display: flex; gap: 6px; align-items: flex-start;
}
.ggtg-lead-box input[type=checkbox] { all: revert !important; margin-top: 2px !important; flex: 0 0 auto; }
.ggtg-lead-box .ggtg-lead-actions { display: flex; gap: 8px; }
.ggtg-lead-box button {
	border-radius: 10px !important;
	padding: 10px 14px !important;
	font-size: 13.5px !important;
	text-align: center;
	display: flex !important; align-items: center; justify-content: center;
}
.ggtg-lead-submit { background: var(--ggtg-primary, #2f7d4f) !important; color: #fff !important; font-weight: 600 !important; flex: 1 1 auto; }
.ggtg-lead-dismiss { background: #f0f2f0 !important; color: #5a6a60 !important; }

.ggtg-inputbar {
	display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px;
	border-top: 1px solid #ececec !important;
	background: #fff !important;
	flex: 0 0 auto;
	padding-bottom: max(10px, env(safe-area-inset-bottom));
}
.ggtg-inputbar textarea {
	all: revert !important;
	flex: 1 1 auto;
	resize: none !important;
	border: 1px solid #dbe2dc !important;
	border-radius: 18px !important;
	padding: 10px 14px !important;
	font-size: 14px !important;
	line-height: 1.35 !important;
	max-height: 90px;
	min-height: 40px;
	font-family: inherit !important;
	background: #f7f8f6 !important;
	color: #1e2b22 !important;
	box-sizing: border-box !important;
}
.ggtg-inputbar textarea:focus { outline: none !important; border-color: var(--ggtg-primary, #2f7d4f) !important; }
.ggtg-inputbar button#ggtg-send {
	flex: 0 0 auto;
	background: var(--ggtg-primary, #2f7d4f) !important;
	border-radius: 50% !important;
	width: 42px !important;
	height: 42px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: opacity .15s ease, transform .1s ease;
}
.ggtg-inputbar button#ggtg-send:active { transform: scale(.93); }
.ggtg-inputbar button#ggtg-send:disabled { opacity: .5 !important; cursor: default !important; }
.ggtg-inputbar button#ggtg-send svg {
	width: 19px !important; height: 19px !important;
	color: #fff !important;
	transform: translateX(-1px);
}

.ggtg-footer-note {
	text-align: center; font-size: 10.5px; color: #a5aca7 !important; padding: 4px 0 8px;
	background: #fff !important;
	flex: 0 0 auto;
}

/* ==========================================================================
   МОБИЛЬНАЯ ВЕРСИЯ — полноэкранный чат в стиле мессенджера (WhatsApp/iMessage),
   а не маленькое плавающее окошко. Открывается снизу на весь экран, шапка и
   поле ввода закреплены, сообщения скроллятся между ними.
   ========================================================================== */
@media (max-width: 640px) {
	.ggtg-fab {
		width: 56px; height: 56px;
		bottom: 16px; right: 16px;
	}
	.ggtg-fab.left { left: 16px; }
	.ggtg-fab svg { width: 24px; height: 24px; }

	.ggtg-teaser {
		bottom: 82px; right: 12px; left: 12px;
		max-width: none;
	}
	.ggtg-teaser.left { left: 12px; }

	.ggtg-window {
		/* На весь экран: так удобнее печатать и читать, клавиатура не "ломает" вёрстку */
		left: 0; right: 0; bottom: 0; top: 0;
		width: 100%;
		max-width: none;
		height: 100dvh; /* корректно учитывает появление мобильной клавиатуры/адресной строки */
		max-height: none;
		border-radius: 0 !important;
	}
	.ggtg-window.left { left: 0; }

	.ggtg-header {
		padding-top: max(14px, env(safe-area-inset-top));
	}
	.ggtg-header .ggtg-title { font-size: 15px !important; }
	.ggtg-header .ggtg-close {
		width: 38px !important; height: 38px !important;
		font-size: 26px !important;
	}

	.ggtg-messages { padding: 14px; gap: 10px; }
	.ggtg-msg { max-width: 88%; font-size: 15px; }
	.ggtg-bubble { padding: 10px 13px; }

	.ggtg-inputbar { padding: 10px; }
	.ggtg-inputbar textarea {
		font-size: 16px !important; /* важно: 16px+ не даёт iOS зумить страницу при фокусе */
		max-height: 70px;
	}
	.ggtg-inputbar button#ggtg-send { width: 44px !important; height: 44px !important; }

	.ggtg-footer-note { display: none; } /* на маленьком экране освобождаем место под переписку */

	.ggtg-lead-box { padding: 14px; }
	.ggtg-lead-box .ggtg-lead-actions { flex-direction: column; }
	.ggtg-lead-box button { padding: 12px 14px !important; font-size: 14.5px !important; }
}

/* Блокируем фоновый скролл страницы, пока открыт полноэкранный чат на мобильном */
body.ggtg-lock-scroll { overflow: hidden !important; position: relative; }
