/* ================================
   Trismeg Embedded Chat Widget
   ================================ */


:root {
  --talvi-mint: #dff4ea;
  --talvi-mint-strong: #bfe8d4;
  --talvi-mint-border: #a8ddc2;
  --talvi-ink: #182033;
  --talvi-muted: #667085;

  /* REMOVE BLUE DOMINANCE */
  --talvi-primary: rgba(111, 211, 167, 0.18);
  --talvi-primary-strong: rgba(111, 211, 167, 0.4);
  --talvi-primary-soft: rgba(111, 211, 167, 0.18);

  --talvi-surface: #ffffff;
}

.embedded-chat-window,
.embedded-chat-window * {
  box-sizing: border-box !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.embedded-chat-button,
.embedded-chat-button * {
  box-sizing: border-box !important;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.embedded-chat-button {
  position: fixed !important;
  right: 20px !important;
  bottom: 20px !important;
  width: 62px !important;
  height: 62px !important;
  border: 1px solid rgba(47, 99, 232, 0.18) !important;
  border-radius: 999px !important;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.6), rgba(255,255,255,0) 45%),
    linear-gradient(180deg, #4f86ff, #2f63e8) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  box-shadow:
    0 16px 40px rgba(47, 99, 232, 0.28),
    0 4px 14px rgba(0, 0, 0, 0.14) !important;
  z-index: 2147483646 !important;
  transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease !important;
  padding: 0 !important;
}

.embedded-chat-button:hover {
  transform: translateY(-2px) !important;
  box-shadow:
    0 20px 48px rgba(37, 99, 235, 0.34),
    0 8px 18px rgba(0, 0, 0, 0.16) !important;
}

.embedded-chat-button .launcher-icon {
  font-size: 22px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
}

.embedded-chat-window {
  position: fixed !important;
  right: 20px !important;
  bottom: 90px !important;
  width: min(420px, calc(100vw - 24px)) !important;
  height: min(720px, calc(100vh - 120px)) !important;
  z-index: 2147483647 !important;
  opacity: 0 !important;
  transform: translateY(18px) scale(0.985) !important;
  pointer-events: none !important;
  transition: opacity 180ms ease, transform 180ms ease !important;
}

.embedded-chat-window.visible {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto !important;
}

.embedded-chat-window .chat-shell {
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  grid-template-rows: auto auto 1fr auto auto !important;
  background:
    linear-gradient(120deg, rgba(223,244,234,0.78) 0%, rgba(234,243,255,0.88) 100%),
    #ffffff !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  box-shadow:
    0 30px 80px rgba(15, 23, 42, 0.18),
    0 10px 24px rgba(15, 23, 42, 0.10) !important;
}

.embedded-chat-window .chat-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 18px 18px 14px !important;
  border-bottom: 1px solid rgba(24, 32, 51, 0.06) !important;
  background: rgba(255, 255, 255, 0.88) !important;
  backdrop-filter: blur(10px) !important;
}

.embedded-chat-window .chat-brand {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}

.embedded-chat-window .chat-brand-logo-wrap {
  width: 48px !important;
  height: 48px !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, rgba(223,244,234,0.95), rgba(234,243,255,0.92)) !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  border: 1px solid rgba(24, 32, 51, 0.06) !important;
}

.embedded-chat-window .chat-logo {
  width: 28px !important;
  height: 28px !important;
  object-fit: contain !important;
  display: block !important;
}

.embedded-chat-window .chat-brand-copy {
  min-width: 0 !important;
}

.embedded-chat-window .chat-title {
  font-size: 17px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: var(--talvi-ink) !important;
  margin: 0 !important;
}

.embedded-chat-window .chat-subtitle {
  margin-top: 2px !important;
  font-size: 13px !important;
  color: var(--talvi-muted) !important;
}

.embedded-chat-window .chat-header-actions {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.embedded-chat-window .header-btn {
  width: 42px !important;
  height: 42px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;
  background: rgba(255,255,255,0.72) !important;
  color: #64748b !important;
  cursor: pointer !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  transition: background-color 140ms ease, transform 140ms ease !important;
}

.embedded-chat-window .header-btn:hover {
  background: rgba(241, 245, 249, 1) !important;
  transform: translateY(-1px) !important;
}

.embedded-chat-window .header-btn.danger {
  color: #ef4444 !important;
}

.embedded-chat-window .chat-status-row {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 18px !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
  color: #475569 !important;
  font-size: 12px !important;
  background: rgba(248, 250, 252, 0.75) !important;
}

.embedded-chat-window .status-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 999px !important;
  background: #2563eb !important;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12) !important;
}

.embedded-chat-window .chat-messages {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 18px !important;
  background: rgba(255,255,255,0.72) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.embedded-chat-window .chat-message {
  display: flex !important;
  width: 100% !important;
}

.embedded-chat-window .chat-message.you {
  justify-content: flex-end !important;
}

.embedded-chat-window .chat-message.ai,
.embedded-chat-window .chat-message.system,
.embedded-chat-window .chat-message.loading {
  justify-content: flex-start !important;
}

.embedded-chat-window .message-card {
  width: auto !important;
  max-width: 86% !important;
  min-width: 120px !important;
  border-radius: 18px !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  background: #ffffff !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08) !important;
}

.embedded-chat-window .chat-message.you .message-card {
  background: linear-gradient(180deg, var(--talvi-blue), var(--talvi-blue-strong)) !important;
  color: #ffffff !important;
  border-color: rgba(47, 99, 232, 0.24) !important;
  border-bottom-right-radius: 6px !important;
}

.embedded-chat-window .chat-message.ai .message-card,
.embedded-chat-window .chat-message.system .message-card,
.embedded-chat-window .chat-message.loading .message-card {
  background: #ffffff !important;
  color: #0f172a !important;
  border-bottom-left-radius: 6px !important;
}

.embedded-chat-window .message-top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-bottom: 8px !important;
}

.embedded-chat-window .message-author {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  opacity: 0.78 !important;
}

.embedded-chat-window .message-time {
  font-size: 11px !important;
  opacity: 0.7 !important;
  white-space: nowrap !important;
}

.embedded-chat-window .message-content,
.embedded-chat-window .markdown-content {
  font-size: 14px !important;
  line-height: 1.55 !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.embedded-chat-window .markdown-content p {
  margin: 0 0 8px !important;
}

.embedded-chat-window .markdown-content p:last-child {
  margin-bottom: 0 !important;
}

.embedded-chat-window .markdown-content h1,
.embedded-chat-window .markdown-content h2,
.embedded-chat-window .markdown-content h3,
.embedded-chat-window .markdown-content h4 {
  margin: 0 0 8px !important;
  line-height: 1.25 !important;
}

.embedded-chat-window .markdown-content ul,
.embedded-chat-window .markdown-content ol {
  padding-left: 18px !important;
  margin: 8px 0 !important;
}

.embedded-chat-window .markdown-content code {
  padding: 2px 5px !important;
  border-radius: 8px !important;
  background: rgba(15, 23, 42, 0.06) !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important;
  font-size: 0.92em !important;
}

.embedded-chat-window .markdown-content pre {
  margin: 10px 0 0 !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  background: #0f172a !important;
  color: #e2e8f0 !important;
  overflow-x: auto !important;
}

.embedded-chat-window .chat-composer {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 10px !important;
  padding: 14px 18px 12px !important;
  border-top: 1px solid rgba(15, 23, 42, 0.06) !important;
  background: rgba(255, 255, 255, 0.88) !important;
}

.embedded-chat-window .chat-input {
  width: 100% !important;
  min-height: 48px !important;
  max-height: 140px !important;
  resize: none !important;
  overflow-y: auto !important;
  padding: 13px 14px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  background: #ffffff !important;
  color: #0f172a !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  outline: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

.embedded-chat-window .chat-input:focus {
  border-color: rgba(37, 99, 235, 0.40) !important;
  box-shadow:
    0 0 0 4px rgba(37, 99, 235, 0.12),
    inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

.embedded-chat-window .chat-input::placeholder {
  color: #94a3b8 !important;
}

.embedded-chat-window .send-btn,
.embedded-chat-window .final-end-chat-btn {
  min-width: 92px !important;
  height: 48px !important;
  border: none !important;
  border-radius: 16px !important;
  padding: 0 16px !important;
  cursor: pointer !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  transition: transform 140ms ease, box-shadow 140ms ease, opacity 140ms ease !important;
}

.embedded-chat-window .send-btn {
  min-width: 116px !important;
  background: linear-gradient(180deg, var(--talvi-blue), var(--talvi-blue-strong)) !important;
  color: #ffffff !important;
  box-shadow: 0 12px 28px rgba(47, 99, 232, 0.26) !important;
}

.embedded-chat-window .send-btn:hover,
.embedded-chat-window .final-end-chat-btn:hover {
  transform: translateY(-1px) !important;
}

.embedded-chat-window .send-btn:disabled {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

.embedded-chat-window .chat-footer {
  display: flex !important;
  justify-content: center !important;
  padding: 0 18px 16px !important;
}

.embedded-chat-window .final-end-chat-btn {
  background: rgba(15, 23, 42, 0.06) !important;
  color: #334155 !important;
}

.embedded-chat-window .cta-wrapper {
  margin-top: 12px !important;
}

.embedded-chat-window .cta-wrapper .cta-container {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.embedded-chat-window .cta-wrapper .cta-message {
  font-size: 13px !important;
  color: #475569 !important;
}

.embedded-chat-window .cta-wrapper a,
.embedded-chat-window .cta-wrapper button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 0 14px !important;
  border-radius: 12px !important;
  border: none !important;
  background: rgba(37, 99, 235, 0.10) !important;
  color: #1d4ed8 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

.embedded-chat-window .chat-modal {
  position: absolute !important;
  inset: 0 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  background: rgba(15, 23, 42, 0.34) !important;
  backdrop-filter: blur(6px) !important;
}

.embedded-chat-window .chat-modal.visible {
  display: flex !important;
}

.embedded-chat-window .chat-modal-card {
  width: min(100%, 360px) !important;
  border-radius: 20px !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  background: #ffffff !important;
  padding: 18px !important;
  box-shadow:
    0 24px 60px rgba(15, 23, 42, 0.24),
    0 6px 18px rgba(15, 23, 42, 0.14) !important;
  position: relative !important;
}

.embedded-chat-window .close-modal-btn {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  width: 32px !important;
  height: 32px !important;
  border: none !important;
  border-radius: 10px !important;
  background: rgba(15, 23, 42, 0.06) !important;
  color: #334155 !important;
  cursor: pointer !important;
}

.embedded-chat-window .modal-step h3 {
  margin: 0 0 8px !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  color: #0f172a !important;
}

.embedded-chat-window .modal-step p {
  margin: 0 0 14px !important;
  color: #64748b !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.embedded-chat-window .rating-buttons {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.embedded-chat-window .rating-btn {
  height: 42px !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #0f172a !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: transform 140ms ease, border-color 140ms ease, background-color 140ms ease !important;
}

.embedded-chat-window .rating-btn:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(37, 99, 235, 0.28) !important;
  background: rgba(37, 99, 235, 0.06) !important;
}

.embedded-chat-window .modal-textarea {
  margin-bottom: 12px !important;
}

.embedded-chat-window .modal-submit {
  width: 100% !important;
}

.embedded-chat-window .typing {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-height: 20px !important;
}

.embedded-chat-window .typing span {
  width: 8px !important;
  height: 8px !important;
  border-radius: 999px !important;
  background: #64748b !important;
  opacity: 0.5 !important;
  animation: embeddedTypingPulse 1.2s infinite ease-in-out !important;
}

.embedded-chat-window .typing span:nth-child(2) {
  animation-delay: 0.16s !important;
}

.embedded-chat-window .typing span:nth-child(3) {
  animation-delay: 0.32s !important;
}

@keyframes embeddedTypingPulse {
  0%, 100% {
    transform: translateY(0);
    opacity: 0.35;
  }
  50% {
    transform: translateY(-3px);
    opacity: 1;
  }
}

/* Dark theme */
.embedded-chat-window[data-theme="dark"] .chat-shell {
  background:
    radial-gradient(900px 360px at 70% -10%, rgba(59, 130, 246, 0.16), transparent 60%),
    #0f172a !important;
  border-color: rgba(148, 163, 184, 0.12) !important;
}

.embedded-chat-window[data-theme="dark"] .chat-header,
.embedded-chat-window[data-theme="dark"] .chat-composer {
  background: rgba(15, 23, 42, 0.82) !important;
  border-color: rgba(148, 163, 184, 0.10) !important;
}

.embedded-chat-window[data-theme="dark"] .chat-status-row {
  background: rgba(15, 23, 42, 0.76) !important;
  color: #cbd5e1 !important;
  border-color: rgba(148, 163, 184, 0.10) !important;
}

.embedded-chat-window[data-theme="dark"] .chat-title {
  color: #f8fafc !important;
}

.embedded-chat-window[data-theme="dark"] .chat-subtitle {
  color: #94a3b8 !important;
}

.embedded-chat-window[data-theme="dark"] .chat-messages {
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.62), rgba(15, 23, 42, 0.90)) !important;
}

.embedded-chat-window[data-theme="dark"] .message-card {
  background: #111827 !important;
  color: #e5e7eb !important;
  border-color: rgba(148, 163, 184, 0.10) !important;
  box-shadow: 0 10px 24px rgba(2, 6, 23, 0.32) !important;
}

.embedded-chat-window[data-theme="dark"] .chat-message.you .message-card {
  background: linear-gradient(180deg, #2563eb, #1d4ed8) !important;
  color: #ffffff !important;
}

.embedded-chat-window[data-theme="dark"] .chat-input {
  background: #0b1220 !important;
  color: #e5e7eb !important;
  border-color: rgba(148, 163, 184, 0.14) !important;
}

.embedded-chat-window[data-theme="dark"] .chat-input::placeholder {
  color: #64748b !important;
}

.embedded-chat-window[data-theme="dark"] .header-btn,
.embedded-chat-window[data-theme="dark"] .final-end-chat-btn,
.embedded-chat-window[data-theme="dark"] .close-modal-btn,
.embedded-chat-window[data-theme="dark"] .rating-btn {
  background: rgba(148, 163, 184, 0.10) !important;
  color: #e5e7eb !important;
  border-color: rgba(148, 163, 184, 0.12) !important;
}

.embedded-chat-window[data-theme="dark"] .chat-modal-card {
  background: #111827 !important;
  border-color: rgba(148, 163, 184, 0.10) !important;
}

.embedded-chat-window[data-theme="dark"] .modal-step h3 {
  color: #f8fafc !important;
}

.embedded-chat-window[data-theme="dark"] .modal-step p,
.embedded-chat-window[data-theme="dark"] .cta-wrapper .cta-message {
  color: #94a3b8 !important;
}

.embedded-chat-window[data-theme="dark"] .markdown-content code {
  background: rgba(148, 163, 184, 0.12) !important;
}

/* Mobile */
@media (max-width: 640px) {
  .embedded-chat-button {
    right: 14px !important;
    bottom: 14px !important;
    width: 54px !important;
    height: 54px !important;
  }

  .embedded-chat-window {
    right: 12px !important;
    left: 12px !important;
    bottom: 78px !important;
    width: auto !important;
    height: min(78vh, 700px) !important;
  }

  .embedded-chat-window .message-card {
    max-width: 92% !important;
  }

  .embedded-chat-window .chat-composer {
    grid-template-columns: 1fr !important;
  }

  .embedded-chat-window .send-btn,
  .embedded-chat-window .final-end-chat-btn {
    width: 100% !important;
  }

  .embedded-chat-window .chat-input-wrap .chat-input {
    padding-right: 46px !important;
  }
}


/* UI CLEAN UP  */

.embedded-chat-window .final-end-chat-btn {
  min-width: 116px !important;
  background: linear-gradient(180deg, #f3f5f8, #e9edf3) !important;
  color: var(--talvi-ink) !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
}

.embedded-chat-window .chat-input:focus {
  border-color: rgba(47, 99, 232, 0.35) !important;
  box-shadow:
    0 0 0 4px rgba(47, 99, 232, 0.12),
    inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

.embedded-chat-window .message-top-right {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.embedded-chat-window .msg-copy-btn {
  width: 24px !important;
  height: 24px !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;
  background: rgba(255,255,255,0.86) !important;
  color: #64748b !important;
  border-radius: 8px !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
  padding: 0 !important;
  flex: 0 0 auto !important;
}

.embedded-chat-window .msg-copy-btn:hover {
  transform: translateY(-1px) !important;
  background: #ffffff !important;
}

.embedded-chat-window .msg-copy-icon {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
}

.embedded-inline-toast {
  position: absolute !important;
  left: 50% !important;
  bottom: 92px !important;
  transform: translateX(-50%) translateY(8px) !important;
  opacity: 0 !important;
  background: #182033 !important;
  color: #fff !important;
  font-size: 12px !important;
  padding: 10px 14px !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.22) !important;
  transition: opacity 160ms ease, transform 160ms ease !important;
  pointer-events: none !important;
  z-index: 4 !important;
}

.embedded-inline-toast.visible {
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) !important;
}

.embedded-chat-window .chat-modal-card {
  width: min(100%, 430px) !important;
  border-radius: 24px !important;
  background:
    linear-gradient(120deg, rgba(223,244,234,0.86) 0%, rgba(234,243,255,0.92) 100%),
    #ffffff !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;
}

.embedded-chat-window .talvi-modal-step h3 {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--talvi-ink) !important;
}

.embedded-chat-window .talvi-modal-step p {
  color: #5b6b84 !important;
}

.embedded-chat-window .rating-btn {
  height: 52px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,0.82) !important;
}

.embedded-chat-window .rating-btn:hover {
  border-color: rgba(47, 99, 232, 0.24) !important;
  background: rgba(47, 99, 232, 0.06) !important;
}

.embedded-chat-window .feedback-meta-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 8px !important;
  gap: 8px !important;
}

.embedded-chat-window .feedback-limit-label,
.embedded-chat-window .feedback-char-count {
  font-size: 12px !important;
  color: #667085 !important;
}

.embedded-chat-window .talvi-feedback-input {
  min-height: 120px !important;
}

.embedded-chat-window .chat-status-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 18px !important;
  border-bottom: 1px solid rgba(24, 32, 51, 0.06) !important;
  color: #475569 !important;
  font-size: 13px !important;
  background: rgba(255,255,255,0.72) !important;
  min-height: 48px !important;
}

.embedded-chat-window .chat-status-row[data-state="connecting"] .status-dot,
.embedded-chat-window .chat-status-row[data-state="thinking"] .status-dot {
  background: var(--talvi-blue) !important;
  box-shadow: 0 0 0 4px rgba(47, 99, 232, 0.12) !important;
}

.embedded-chat-window .chat-status-row[data-state="error"] .status-dot {
  background: #ef4444 !important;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12) !important;
}

.embedded-chat-window .chat-status-row[data-state="error"] {
  color: #b91c1c !important;
}



/* =========================
   LAUNCH BUTTON (FIXED)
   ========================= */

.embedded-chat-button {
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.6), transparent 45%),
    linear-gradient(180deg, var(--talvi-primary), var(--talvi-primary-strong)) !important;

  border: 1px solid var(--talvi-mint-border) !important;

  box-shadow:
    0 16px 40px rgba(111, 211, 167, 0.35),
    0 4px 14px rgba(0, 0, 0, 0.12) !important;
}

/* =========================
   USER MESSAGE (REMOVE BLUE)
   ========================= */

.embedded-chat-window .chat-message.you .message-card {
  background: linear-gradient(
    180deg,
    var(--talvi-primary),
    var(--talvi-primary-strong)
  ) !important;

  color: #0f172a !important;
  border-color: var(--talvi-mint-border) !important;
}

/* =========================
   SEND BUTTON (FIXED)
   ========================= */

.embedded-chat-window .send-btn {
  background: linear-gradient(
    180deg,
    var(--talvi-primary),
    var(--talvi-primary-strong)
  ) !important;

  color: #0f172a !important;

  box-shadow: 0 12px 28px rgba(111, 211, 167, 0.35) !important;
}

.embedded-chat-window .send-btn:hover {
  background: linear-gradient(
    180deg,
    var(--talvi-primary-strong),
    #39b985
  ) !important;
}

/* =========================
   INPUT FOCUS (REMOVE BLUE GLOW)
   ========================= */

.embedded-chat-window .chat-input:focus {
  border-color: var(--talvi-primary) !important;

  box-shadow:
    0 0 0 4px rgba(111, 211, 167, 0.25),
    inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

/* =========================
   STATUS DOT (NO BLUE)
   ========================= */

.embedded-chat-window .status-dot {
  background: var(--talvi-primary) !important;
  box-shadow: 0 0 0 4px rgba(111, 211, 167, 0.2) !important;
}

/* =========================
   FOOTER CLEANUP
   ========================= */

.embedded-chat-window .chat-footer {
  padding: 12px 18px 20px !important;
  background: transparent !important;
}

/* =========================
   END CHAT BUTTON (FIXED)
   ========================= */

.embedded-chat-window .final-end-chat-btn {
  background: linear-gradient(
    180deg,
    #f7fafc,
    #edf2f7
  ) !important;

  color: var(--talvi-ink) !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;

  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08) !important;
}

/* =========================
   COPY BUTTON (BETTER UX)
   ========================= */

.embedded-chat-window .msg-copy-btn {
  background: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(24, 32, 51, 0.08) !important;
}

.embedded-chat-window .msg-copy-btn:hover {
  background: #ffffff !important;
  border-color: var(--talvi-primary) !important;
}

/* =========================
   MODAL (TALVI STYLE)
   ========================= */

.embedded-chat-window .chat-modal-card {
  background:
    linear-gradient(
      120deg,
      rgba(223,244,234,0.9),
      rgba(240,249,255,0.95)
    ) !important;
}

/* =========================
   RATING BUTTONS
   ========================= */

.embedded-chat-window .rating-btn:hover {
  border-color: var(--talvi-primary) !important;
  background: var(--talvi-primary-soft) !important;
}

/* =========================
   FEEDBACK BUTTON
   ========================= */

.embedded-chat-window .modal-submit {
  background: linear-gradient(
    180deg,
    var(--talvi-primary),
    var(--talvi-primary-strong)
  ) !important;

  color: #0f172a !important;
}

/* =========================
   REMOVE ANY HARD BLUE LEAKS
   ========================= */

.embedded-chat-window * {
  --blue: unset !important;
}

/* =====================================
   TALVI FINAL COLOUR SYSTEM (CLEAN)
   ===================================== */

:root {
  --talvi-cta: #4CA7A0 !important;
  --talvi-cta-hover: #3F8F89 !important;
  --talvi-cta-soft: rgba(76,167,160,0.18) !important;
}

/* =========================
   ALL PRIMARY BUTTONS
   ========================= */

.embedded-chat-window .send-btn,
.embedded-chat-window .modal-submit,
.embedded-chat-window .cta-wrapper a,
.embedded-chat-window .cta-wrapper button {
  background: linear-gradient(
    180deg,
    var(--talvi-cta),
    var(--talvi-cta-hover)
  ) !important;

  color: #ffffff !important;
  border: none !important;

  box-shadow: 0 10px 24px rgba(76,167,160,0.28) !important;
}

.embedded-chat-window .send-btn:hover,
.embedded-chat-window .modal-submit:hover,
.embedded-chat-window .cta-wrapper a:hover,
.embedded-chat-window .cta-wrapper button:hover {
  background: var(--talvi-cta-hover) !important;
}

/* =========================
   USER MESSAGE (FIX BLUE)
   ========================= */

.embedded-chat-window .chat-message.you .message-card {
  background: linear-gradient(
    180deg,
    var(--talvi-cta),
    var(--talvi-cta-hover)
  ) !important;

  color: #ffffff !important;
  border: none !important;
}

/* =========================
   LAUNCH BUTTON (FIXED)
   ========================= */

.embedded-chat-button {
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.5), transparent 45%),
    linear-gradient(180deg, var(--talvi-cta), var(--talvi-cta-hover)) !important;

  border: none !important;

  box-shadow:
    0 16px 40px rgba(76,167,160,0.35),
    0 4px 14px rgba(0,0,0,0.15) !important;
}

/* =========================
   INPUT FOCUS (REMOVE BLUE)
   ========================= */

.embedded-chat-window .chat-input:focus {
  border-color: var(--talvi-cta) !important;

  box-shadow:
    0 0 0 4px rgba(76,167,160,0.25) !important;
}

/* =========================
   STATUS DOT (FIX BLUE)
   ========================= */

.embedded-chat-window .status-dot,
.embedded-chat-window .chat-status-row[data-state="connecting"] .status-dot,
.embedded-chat-window .chat-status-row[data-state="thinking"] .status-dot {
  background: var(--talvi-cta) !important;
  box-shadow: 0 0 0 4px rgba(76,167,160,0.2) !important;
}

/* =========================
   CTA BUTTONS INSIDE CHAT
   ========================= */

.embedded-chat-window .cta-wrapper a,
.embedded-chat-window .cta-wrapper button {
  background: var(--talvi-cta-soft) !important;
  color: var(--talvi-cta-hover) !important;
  border: 1px solid rgba(76,167,160,0.3) !important;
}

/* =========================
   RATING BUTTONS
   ========================= */

.embedded-chat-window .rating-btn:hover {
  border-color: var(--talvi-cta) !important;
  background: var(--talvi-cta-soft) !important;
}

/* =========================
   REMOVE ALL BLUE REMNANTS
   ========================= */

.embedded-chat-window * {
  --talvi-blue: unset !important;
  --talvi-blue-strong: unset !important;
}

/* =====================================
   TALVI SAFE PATCH
   Append at end of embed_ai_chat.css
   Keeps current positioning stable
   ===================================== */

/* Brand CTA colour */
:root {
  --talvi-cta: #4CA7A0 !important;
  --talvi-cta-hover: #3F8F89 !important;
  --talvi-cta-soft: rgba(76, 167, 160, 0.18) !important;
}

/* Keep launcher position exactly as-is, only improve visuals */
.embedded-chat-button {
  right: 20px !important;
  left: auto !important;
  bottom: 20px !important;
  top: auto !important;

  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.42), rgba(255,255,255,0.08) 38%, rgba(255,255,255,0) 62%),
    linear-gradient(180deg, var(--talvi-cta), var(--talvi-cta-hover)) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow:
    0 16px 40px rgba(76,167,160,0.34),
    0 4px 14px rgba(0,0,0,0.14) !important;
}

.embedded-chat-button:hover {
  box-shadow:
    0 20px 48px rgba(76,167,160,0.38),
    0 8px 18px rgba(0,0,0,0.16) !important;
}

/* Primary buttons */
.embedded-chat-window .send-btn,
.embedded-chat-window .modal-submit {
  background: linear-gradient(180deg, var(--talvi-cta), var(--talvi-cta-hover)) !important;
  color: #ffffff !important;
  border: none !important;
  box-shadow: 0 12px 28px rgba(76,167,160,0.28) !important;
}

.embedded-chat-window .send-btn:hover,
.embedded-chat-window .modal-submit:hover {
  background: linear-gradient(180deg, var(--talvi-cta-hover), #377f79) !important;
  color: #ffffff !important;
}

/* User message bubble */
.embedded-chat-window .chat-message.you .message-card {
  background: linear-gradient(180deg, var(--talvi-cta), var(--talvi-cta-hover)) !important;
  color: #ffffff !important;
  border: none !important;
}

/* Focus ring */
.embedded-chat-window .chat-input:focus {
  border-color: var(--talvi-cta) !important;
  box-shadow:
    0 0 0 4px rgba(76,167,160,0.20),
    inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

/* Status dot */
.embedded-chat-window .status-dot,
.embedded-chat-window .chat-status-row[data-state="connecting"] .status-dot,
.embedded-chat-window .chat-status-row[data-state="thinking"] .status-dot {
  background: var(--talvi-cta) !important;
  box-shadow: 0 0 0 4px rgba(76,167,160,0.18) !important;
}

/* Smaller end-chat area */
.embedded-chat-window .chat-footer {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 4px 18px 10px !important;
  min-height: 58px !important;
  background: rgba(255,255,255,0.28) !important;
}

.embedded-chat-window .final-end-chat-btn {
  min-width: 128px !important;
  height: 42px !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, #f8fbfd, #edf3f7) !important;
  color: var(--talvi-ink) !important;
  border: 1px solid rgba(24,32,51,0.08) !important;
  box-shadow: 0 6px 14px rgba(15,23,42,0.08) !important;
}

/* Modal corners and polish */
.embedded-chat-window .chat-modal {
  border-radius: 24px !important;
  overflow: hidden !important;
}

.embedded-chat-window .chat-modal-card {
  border-radius: 26px !important;
  overflow: hidden !important;
  background:
    linear-gradient(120deg, rgba(223,244,234,0.92) 0%, rgba(240,249,255,0.96) 100%) !important;
}

/* Rating hover */
.embedded-chat-window .rating-btn:hover {
  border-color: var(--talvi-cta) !important;
  background: var(--talvi-cta-soft) !important;
}

/* Copy button */
.embedded-chat-window .msg-copy-btn:hover {
  border-color: var(--talvi-cta) !important;
}

/* CTA links/buttons inside assistant responses */
.embedded-chat-window .cta-wrapper a,
.embedded-chat-window .cta-wrapper button {
  background: var(--talvi-cta-soft) !important;
  color: var(--talvi-cta-hover) !important;
  border: 1px solid rgba(76,167,160,0.28) !important;
}

.embedded-chat-window .cta-wrapper a:hover,
.embedded-chat-window .cta-wrapper button:hover {
  background: rgba(76,167,160,0.24) !important;
  color: #2f6f69 !important;
}

/* =====================================
   TALVI ANIMATION PATCH
   Add at very bottom of embed_ai_chat.css
   Safe animation layer only
   ===================================== */

/* Launcher idle glow */
.embedded-chat-button {
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    opacity 180ms ease,
    filter 180ms ease !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

.embedded-chat-button::before {
  content: "" !important;
  position: absolute !important;
  inset: 8px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, rgba(255,255,255,0.18), rgba(255,255,255,0.02) 60%, rgba(255,255,255,0) 72%) !important;
  pointer-events: none !important;
}

.embedded-chat-button::after {
  content: "" !important;
  position: absolute !important;
  inset: -14px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, rgba(76,167,160,0.20), rgba(76,167,160,0.08) 42%, rgba(76,167,160,0) 70%) !important;
  pointer-events: none !important;
  z-index: -1 !important;
  animation: talviLauncherGlow 2.6s ease-in-out infinite !important;
}

.embedded-chat-button:hover {
  transform: translateY(-2px) scale(1.03) !important;
}

.embedded-chat-button:hover::after {
  animation-duration: 1.8s !important;
}

/* Genie open / close animation */
.embedded-chat-window {
  transform-origin: calc(100% - 34px) calc(100% + 10px) !important;
  transform: translateY(24px) scale(0.84) skewY(1deg) !important;
  filter: blur(3px) saturate(0.95) !important;
  transition:
    opacity 220ms ease,
    transform 360ms cubic-bezier(0.2, 0.92, 0.24, 1),
    filter 320ms ease !important;
}

.embedded-chat-window.visible {
  transform: translateY(0) scale(1) skewY(0deg) !important;
  filter: blur(0) saturate(1) !important;
}

/* Subtle shell float when open */
.embedded-chat-window.visible .chat-shell {
  animation: talviShellFloatIn 420ms cubic-bezier(0.2, 0.92, 0.24, 1) 1 !important;
}

/* Animated status dot */
.embedded-chat-window .chat-status-row[data-state="connecting"] .status-dot,
.embedded-chat-window .chat-status-row[data-state="thinking"] .status-dot {
  animation: talviStatusPulse 1.2s ease-in-out infinite !important;
}

/* Slight shimmer on status row while thinking */
.embedded-chat-window .chat-status-row[data-state="thinking"] {
  position: relative !important;
  overflow: hidden !important;
}

.embedded-chat-window .chat-status-row[data-state="thinking"]::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: -40% !important;
  width: 40% !important;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.28), rgba(255,255,255,0)) !important;
  animation: talviStatusSweep 1.6s ease-in-out infinite !important;
  pointer-events: none !important;
}

/* Message entrance */
.embedded-chat-window .chat-message {
  animation: talviMessageIn 240ms ease-out 1 !important;
  transform-origin: bottom center !important;
}

.embedded-chat-window .chat-message.you {
  animation-name: talviMessageInRight !important;
}

.embedded-chat-window .chat-message.ai,
.embedded-chat-window .chat-message.system,
.embedded-chat-window .chat-message.loading {
  animation-name: talviMessageInLeft !important;
}

/* Copy button micro animation */
.embedded-chat-window .msg-copy-btn {
  transition:
    transform 140ms ease,
    background-color 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease !important;
}

.embedded-chat-window .msg-copy-btn:hover {
  box-shadow: 0 4px 12px rgba(76,167,160,0.14) !important;
}

/* Send button tactile feel */
.embedded-chat-window .send-btn,
.embedded-chat-window .modal-submit,
.embedded-chat-window .final-end-chat-btn {
  transition:
    transform 160ms ease,
    box-shadow 160ms ease,
    filter 160ms ease !important;
}

.embedded-chat-window .send-btn:hover,
.embedded-chat-window .modal-submit:hover,
.embedded-chat-window .final-end-chat-btn:hover {
  transform: translateY(-1px) scale(1.01) !important;
}

.embedded-chat-window .send-btn:active,
.embedded-chat-window .modal-submit:active,
.embedded-chat-window .final-end-chat-btn:active {
  transform: translateY(0) scale(0.985) !important;
}

/* Modal entrance */
.embedded-chat-window .chat-modal.visible .chat-modal-card {
  animation: talviModalIn 240ms cubic-bezier(0.2, 0.92, 0.24, 1) 1 !important;
}

/* Keyframes */
@keyframes talviLauncherGlow {
  0%, 100% {
    transform: scale(0.94);
    opacity: 0.44;
  }
  50% {
    transform: scale(1.06);
    opacity: 0.82;
  }
}

@keyframes talviShellFloatIn {
  0% {
    transform: translateY(10px) scale(0.985);
    opacity: 0.88;
  }
  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

@keyframes talviStatusPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.18);
    opacity: 0.76;
  }
}

@keyframes talviStatusSweep {
  0% {
    left: -40%;
  }
  100% {
    left: 120%;
  }
}

@keyframes talviMessageInLeft {
  0% {
    opacity: 0;
    transform: translateX(-10px) translateY(6px) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translateX(0) translateY(0) scale(1);
  }
}

@keyframes talviMessageInRight {
  0% {
    opacity: 0;
    transform: translateX(10px) translateY(6px) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translateX(0) translateY(0) scale(1);
  }
}

@keyframes talviModalIn {
  0% {
    opacity: 0;
    transform: translateY(12px) scale(0.96);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Smaller launcher icon */
.embedded-chat-button svg,
.embedded-chat-button .launcher-icon {
  width: 30px !important;
  height: 30px !important;
  display: block !important;
}

/* Smaller footer + end chat button */
.embedded-chat-window .chat-footer {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 2px 18px 8px !important;
  min-height: 50px !important;
  background: rgba(255,255,255,0.22) !important;
}

.embedded-chat-window .final-end-chat-btn {
  min-width: 112px !important;
  height: 38px !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.embedded-chat-window .try-asking-inline {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-top: 4px !important;
}

.embedded-chat-window .try-asking-label {
  font-weight: 700 !important;
  color: inherit !important;
}

.embedded-chat-window .try-asking-text {
  color: inherit !important;
}

.embedded-chat-window .try-asking-copy-btn {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  border-radius: 7px !important;
}

.embedded-chat-window .try-asking-copy-btn {
  background: rgba(76,167,160,0.12) !important;
  border-color: rgba(76,167,160,0.35) !important;
}

/* =====================================
   MIC INPUT LAYOUT - FINAL FIX
   ===================================== */

.embedded-chat-window .chat-composer {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 12px !important;
}

.embedded-chat-window .chat-input-wrap {
  position: relative !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.embedded-chat-window .chat-input-wrap .chat-input {
  width: 100% !important;
  min-height: 56px !important;
  max-height: 140px !important;
  resize: none !important;
  overflow-y: auto !important;

  /* leave proper room for mic */
  padding: 14px 56px 14px 18px !important;

  line-height: 1.4 !important;
  border-radius: 18px !important;

  box-sizing: border-box !important;
}

.embedded-chat-window .chat-mic-btn {
  position: absolute !important;
  right: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 0 !important;

  border: none !important;
  background: rgba(76,167,160,0.10) !important;
  color: var(--talvi-cta) !important;
  border-radius: 999px !important;

  cursor: pointer !important;
  line-height: 1 !important;
  z-index: 3 !important;
  appearance: none !important;
  -webkit-appearance: none !important;

  transition:
    background-color 140ms ease,
    color 140ms ease,
    box-shadow 140ms ease,
    transform 140ms ease !important;
}

.embedded-chat-window .chat-mic-btn:hover {
  background: rgba(76,167,160,0.16) !important;
  color: var(--talvi-cta-hover) !important;
}

.embedded-chat-window .chat-mic-btn:active {
  transform: translateY(-50%) scale(0.96) !important;
}

.embedded-chat-window .chat-mic-btn.listening {
  background: rgba(76,167,160,0.18) !important;
  color: var(--talvi-cta-hover) !important;
  box-shadow: 0 0 0 4px rgba(76,167,160,0.12) !important;
}

.embedded-chat-window .chat-mic-icon {
  width: 15px !important;
  height: 15px !important;
  display: block !important;
  flex: 0 0 15px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.embedded-chat-window .chat-mic-btn.listening .chat-mic-icon {
  animation: talviMicPulse 1.2s ease-in-out infinite !important;
}

@keyframes talviMicPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.10);
    opacity: 0.82;
  }
}

/* mobile */
@media (max-width: 640px) {
  .embedded-chat-window .chat-input-wrap .chat-input {
    padding-right: 56px !important;
  }

  .embedded-chat-window .chat-mic-btn {
    right: 12px !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
  }
}

/* Fix mic button being visible/clickable in the end chat flow*/
.embedded-chat-window .chat-modal {
  z-index: 999 !important;
}

.embedded-chat-window .chat-modal-card {
  position: relative !important;
  z-index: 1000 !important;
}

.embedded-chat-window .chat-mic-btn {
  z-index: 1 !important;
}