/**
 * PGS AI Chatbot - Public Frontend Stylesheet (Ultra High Specificity & Fully Dynamic Brand Colors)
 */

:root {
	--pgs-primary: #6366f1;
	--gemini-primary: #6366f1;
	--gemini-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--gemini-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.25);
}

/* Floating Launcher Container */
#gemini-cb-widget-root {
	position: fixed !important;
	z-index: 99999999 !important;
	font-family: var(--gemini-font) !important;
	bottom: 24px !important;
}

#gemini-cb-widget-root * {
	box-sizing: border-box !important;
}

#gemini-cb-launcher * {
	pointer-events: none !important;
}

#gemini-cb-widget-root.gemini-cb-pos-right {
	right: 24px !important;
	left: auto !important;
}

#gemini-cb-widget-root.gemini-cb-pos-left {
	left: 24px !important;
	right: auto !important;
}

/* Themes with Dynamic Primary Color Support */
.gemini-cb-theme-light {
	--gemini-bg: #ffffff;
	--gemini-bg-glass: rgba(255, 255, 255, 0.96);
	--gemini-border: #e2e8f0;
	--gemini-text-main: #0f172a;
	--gemini-text-muted: #64748b;
	--gemini-bot-msg-bg: #f1f5f9;
	--gemini-bot-msg-text: #1e293b;
	--gemini-user-msg-bg: var(--pgs-primary, var(--gemini-primary, #6366f1));
	--gemini-user-msg-text: #ffffff;
	--gemini-input-bg: #f8fafc;
	--gemini-code-bg: #0f172a;
	--gemini-code-text: #38bdf8;
}

.gemini-cb-theme-dark {
	--gemini-bg: #0f172a;
	--gemini-bg-glass: rgba(15, 23, 42, 0.98);
	--gemini-border: #334155;
	--gemini-text-main: #f8fafc;
	--gemini-text-muted: #94a3b8;
	--gemini-bot-msg-bg: #1e293b;
	--gemini-bot-msg-text: #f1f5f9;
	--gemini-user-msg-bg: var(--pgs-primary, var(--gemini-primary, #6366f1));
	--gemini-user-msg-text: #ffffff;
	--gemini-input-bg: #1e293b;
	--gemini-code-bg: #020617;
	--gemini-code-text: #38bdf8;
}

/* Tooltip Badge */
.gemini-cb-launcher-tooltip {
	position: absolute !important;
	bottom: 72px !important;
	right: 0 !important;
	background: #0f172a !important;
	color: #ffffff !important;
	padding: 6px 14px !important;
	border-radius: 20px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	white-space: nowrap !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
	cursor: pointer !important;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	animation: geminiPulseBadge 2.5s infinite ease-in-out !important;
}

#gemini-cb-widget-root.gemini-cb-pos-left .gemini-cb-launcher-tooltip {
	left: 0 !important;
	right: auto !important;
}

/* Floating Launcher Button - Fully Uses Custom Brand Color */
#gemini-cb-launcher {
	width: 60px !important;
	height: 60px !important;
	border-radius: 50% !important;
	background: var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	color: #ffffff !important;
	border: 2px solid rgba(255, 255, 255, 0.4) !important;
	cursor: pointer !important;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.2s ease !important;
	position: relative !important;
	z-index: 99999999 !important;
	padding: 0 !important;
	margin: 0 !important;
}

#gemini-cb-launcher:hover {
	transform: scale(1.08) !important;
	filter: brightness(1.1) !important;
}

/* Modal Window Container */
#gemini-cb-modal {
	position: fixed !important;
	bottom: 96px !important;
	width: 380px !important;
	max-width: calc(100vw - 32px) !important;
	height: 580px !important;
	max-height: calc(100vh - 120px) !important;
	background: var(--gemini-bg-glass) !important;
	backdrop-filter: blur(16px) !important;
	-webkit-backdrop-filter: blur(16px) !important;
	border: 1px solid var(--gemini-border) !important;
	border-radius: 24px !important;
	box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.3) !important;
	flex-direction: column !important;
	overflow: hidden !important;
	transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
	transform-origin: bottom right !important;
	z-index: 999999999 !important;
	margin: 0 !important;
	padding: 0 !important;
}

#gemini-cb-widget-root.gemini-cb-pos-left #gemini-cb-modal {
	left: 24px !important;
	right: auto !important;
	transform-origin: bottom left !important;
}

#gemini-cb-widget-root.gemini-cb-pos-right #gemini-cb-modal {
	right: 24px !important;
	left: auto !important;
}

.gemini-cb-modal-hidden {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: scale(0.85) translateY(20px) !important;
}

/* Modal Header - Fully Uses Custom Brand Color */
.gemini-cb-modal-header {
	background: var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	padding: 16px 20px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.gemini-cb-header-info {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

.gemini-cb-header-avatar {
	position: relative !important;
	width: 38px !important;
	height: 38px !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.25) !important;
	color: #ffffff !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: hidden !important;
	border: 1px solid rgba(255, 255, 255, 0.35) !important;
}

.gemini-cb-avatar-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.gemini-cb-status-dot {
	position: absolute !important;
	bottom: 2px !important;
	right: 2px !important;
	width: 8px !important;
	height: 8px !important;
	background: #10b981 !important;
	border: 2px solid #ffffff !important;
	border-radius: 50% !important;
}

.gemini-cb-header-text h4 {
	margin: 0 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	line-height: 1.2 !important;
}

.gemini-cb-header-text span {
	font-size: 12px !important;
	color: rgba(255, 255, 255, 0.85) !important;
}

.gemini-cb-header-actions {
	display: flex !important;
	gap: 6px !important;
}

.gemini-cb-header-actions button {
	background: rgba(255, 255, 255, 0.2) !important;
	border: none !important;
	color: #ffffff !important;
	cursor: pointer !important;
	padding: 6px !important;
	border-radius: 8px !important;
	transition: background 0.2s ease !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
}

.gemini-cb-header-actions button:hover {
	background: rgba(255, 255, 255, 0.35) !important;
}

/* Modal Body */
.gemini-cb-modal-body {
	flex: 1 !important;
	padding: 16px 20px !important;
	overflow-y: auto !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	scroll-behavior: smooth !important;
}

/* Message Rows */
.gemini-cb-msg-row {
	display: flex !important;
	gap: 10px !important;
	max-width: 85% !important;
	animation: geminiFadeIn 0.3s ease forwards !important;
}

.gemini-cb-msg-row.msg-user {
	align-self: flex-end !important;
	flex-direction: row-reverse !important;
}

.gemini-cb-msg-row.msg-bot {
	align-self: flex-start !important;
}

.gemini-cb-msg-bubble {
	padding: 12px 16px !important;
	border-radius: 18px !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	word-break: break-word !important;
	box-shadow: 0 2px 5px rgba(0,0,0,0.05) !important;
}

.msg-user .gemini-cb-msg-bubble {
	background: var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	color: #ffffff !important;
	border-bottom-right-radius: 4px !important;
}

.msg-bot .gemini-cb-msg-bubble {
	background: var(--gemini-bot-msg-bg) !important;
	color: var(--gemini-bot-msg-text) !important;
	border-bottom-left-radius: 4px !important;
	border: 1px solid var(--gemini-border) !important;
}

/* Typing Dots */
.gemini-cb-typing-indicator {
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	padding: 12px 16px !important;
}

.gemini-cb-typing-dot {
	width: 6px !important;
	height: 6px !important;
	background: var(--gemini-text-muted) !important;
	border-radius: 50% !important;
	animation: geminiPulse 1.4s infinite ease-in-out both !important;
}

.gemini-cb-typing-dot:nth-child(1) { animation-delay: -0.32s !important; }
.gemini-cb-typing-dot:nth-child(2) { animation-delay: -0.16s !important; }

/* Starters */
.gemini-cb-starters-wrapper {
	padding: 8px 16px !important;
	display: flex !important;
	gap: 6px !important;
	overflow-x: auto !important;
	white-space: nowrap !important;
}

.gemini-cb-starter-chip {
	background: rgba(99, 102, 241, 0.08) !important;
	color: var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	border: 1px solid var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	padding: 6px 14px !important;
	border-radius: 16px !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	display: inline-block !important;
}

.gemini-cb-starter-chip:hover {
	background: var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	color: #ffffff !important;
}

/* Modal Footer & Input Area Overhaul */
.gemini-cb-modal-footer {
	padding: 12px 16px !important;
	border-top: 1px solid var(--gemini-border) !important;
	background: var(--gemini-bg) !important;
}

#gemini-cb-widget-root #gemini-cb-chat-form {
	display: flex !important;
	align-items: center !important;
	background: var(--gemini-input-bg, #f8fafc) !important;
	border: 1.5px solid var(--gemini-border, #e2e8f0) !important;
	border-radius: 28px !important;
	padding: 4px 6px 4px 16px !important;
	margin: 0 !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
	min-height: 46px !important;
	width: 100% !important;
}

#gemini-cb-widget-root #gemini-cb-input {
	flex: 1 1 auto !important;
	background: transparent !important;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	color: var(--gemini-text-main, #0f172a) !important;
	font-size: 14px !important;
	font-family: var(--gemini-font) !important;
	line-height: 1.4 !important;
	resize: none !important;
	padding: 8px 0 !important;
	margin: 0 !important;
	height: auto !important;
	max-height: 80px !important;
	min-height: 24px !important;
	width: 100% !important;
}

#gemini-cb-widget-root #gemini-cb-send-btn {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	min-height: 36px !important;
	max-width: 36px !important;
	max-height: 36px !important;
	border-radius: 50% !important;
	background: var(--pgs-primary, var(--gemini-primary, #6366f1)) !important;
	color: #ffffff !important;
	border: none !important;
	outline: none !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 0 0 8px !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
	transition: transform 0.2s ease, filter 0.2s ease !important;
}

#gemini-cb-widget-root #gemini-cb-send-btn:hover {
	transform: scale(1.08) !important;
	filter: brightness(1.1) !important;
}

#gemini-cb-widget-root #gemini-cb-send-btn svg {
	width: 18px !important;
	height: 18px !important;
	fill: none !important;
	stroke: #ffffff !important;
	stroke-width: 2.5 !important;
	stroke-linecap: round !important;
	stroke-linejoin: round !important;
	pointer-events: none !important;
	margin: 0 !important;
}

.gemini-cb-powered-by {
	text-align: center !important;
	margin-top: 6px !important;
	font-size: 10px !important;
	color: var(--gemini-text-muted) !important;
}

/* Animations */
@keyframes geminiFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes geminiPulse {
	0%, 80%, 100% { transform: scale(0); }
	40% { transform: scale(1.0); }
}

@keyframes geminiPulseBadge {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-4px); }
}
