#sai-chat-root {
  --sai-brand: #25D366;
  --sai-brand-dark: #128C7E;
  font-family: 'Hind Siliguri', sans-serif;
}

/* Floating toggle button */
.sai-toggle-btn {
  position: fixed !important;
  bottom: 95px !important;
  right: 25px !important;
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
  border: none !important;
  cursor: pointer !important;
  background: linear-gradient(135deg, var(--sai-brand) 0%, var(--sai-brand-dark) 100%) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 10px 25px rgba(0,0,0,0.35) !important;
  z-index: 999998 !important;
  transition: transform 0.25s ease !important;
}
.sai-toggle-btn:hover { transform: scale(1.08) !important; }
.sai-toggle-btn svg { width: 28px !important; height: 28px !important; fill: #fff !important; }

@media (max-width: 768px) {
  .sai-toggle-btn { bottom: 85px !important; right: 18px !important; width: 52px !important; height: 52px !important; }
}

/* Chat window */
.sai-window {
  position: fixed !important;
  bottom: 165px !important;
  right: 25px !important;
  width: 360px !important;
  max-width: calc(100vw - 30px) !important;
  height: 520px !important;
  max-height: calc(100vh - 200px) !important;
  background: #0F172A !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.5) !important;
  display: none;
  flex-direction: column !important;
  overflow: hidden !important;
  z-index: 999999 !important;
}
.sai-window.sai-open { display: flex !important; }

@media (max-width: 480px) {
  .sai-window {
    bottom: 0 !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 85vh !important;
    max-height: 85vh !important;
    border-radius: 16px 16px 0 0 !important;
  }
}

.sai-header {
  background: linear-gradient(135deg, var(--sai-brand) 0%, var(--sai-brand-dark) 100%) !important;
  color: #fff !important;
  padding: 14px 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.sai-header-title { display: flex !important; align-items: center !important; gap: 10px !important; font-weight: 700 !important; font-size: 0.98rem !important; }
.sai-header-actions { display: flex !important; align-items: center !important; gap: 8px !important; }
.sai-wa-header-btn { background: rgba(255,255,255,0.18) !important; border: none !important; width: 30px !important; height: 30px !important; border-radius: 50% !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.sai-wa-header-btn svg { width: 15px !important; height: 15px !important; fill: #fff !important; }
.sai-wa-header-btn:hover { background: rgba(255,255,255,0.3) !important; }
.sai-header-dot { width: 9px !important; height: 9px !important; border-radius: 50% !important; background: #B6FFCB !important; box-shadow: 0 0 0 0 rgba(182,255,203,0.6) !important; animation: sai-pulse 2s infinite !important; }
@keyframes sai-pulse {
  0% { box-shadow: 0 0 0 0 rgba(182,255,203,0.6); }
  70% { box-shadow: 0 0 0 8px rgba(182,255,203,0); }
  100% { box-shadow: 0 0 0 0 rgba(182,255,203,0); }
}
.sai-close-btn { background: rgba(255,255,255,0.15) !important; border: none !important; color: #fff !important; width: 28px !important; height: 28px !important; border-radius: 50% !important; cursor: pointer !important; font-size: 16px !important; line-height: 1 !important; }

.sai-body {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 16px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  background: radial-gradient(circle at top, #131c30 0%, #0b1220 100%) !important;
}

.sai-msg { max-width: 82% !important; padding: 10px 13px !important; border-radius: 14px !important; font-size: 0.88rem !important; line-height: 1.5 !important; white-space: pre-wrap !important; word-wrap: break-word !important; }
.sai-msg-bot { align-self: flex-start !important; background: rgba(255,255,255,0.06) !important; color: #E5E7EB !important; border-bottom-left-radius: 4px !important; }
.sai-msg-user { align-self: flex-end !important; background: linear-gradient(135deg, var(--sai-brand) 0%, var(--sai-brand-dark) 100%) !important; color: #fff !important; border-bottom-right-radius: 4px !important; }

.sai-typing { align-self: flex-start !important; display: flex !important; gap: 4px !important; padding: 10px 13px !important; }
.sai-typing span { width: 6px !important; height: 6px !important; border-radius: 50% !important; background: #9CA3AF !important; animation: sai-blink 1.2s infinite ease-in-out !important; }
.sai-typing span:nth-child(2) { animation-delay: 0.2s !important; }
.sai-typing span:nth-child(3) { animation-delay: 0.4s !important; }
@keyframes sai-blink { 0%, 80%, 100% { opacity: 0.3; } 40% { opacity: 1; } }

.sai-footer { padding: 12px !important; border-top: 1px solid rgba(255,255,255,0.08) !important; background: #0F172A !important; }

/* Subtle authorship credit — small and low-opacity by design, not meant to
   compete with the client's own branding, but still visible enough to work
   as a quiet marketing signature for reselling this plugin. */
.sai-credit-line {
  display: block !important;
  text-align: center !important;
  margin-top: 8px !important;
  font-size: 0.65rem !important;
  color: rgba(255,255,255,0.28) !important;
  text-decoration: none !important;
  letter-spacing: 0.2px !important;
  transition: color 0.2s ease !important;
}
.sai-credit-line:hover { color: rgba(255,255,255,0.55) !important; }
.sai-input-row { display: flex !important; gap: 8px !important; }
.sai-input {
  flex: 1 !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  color: #fff !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 0.88rem !important;
  resize: none !important;
  font-family: inherit !important;
  outline: none !important;
}
.sai-input::placeholder { color: #6B7280 !important; }
.sai-send-btn {
  background: linear-gradient(135deg, var(--sai-brand) 0%, var(--sai-brand-dark) 100%) !important;
  border: none !important;
  border-radius: 10px !important;
  width: 42px !important;
  height: 42px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
}
.sai-send-btn svg { width: 18px !important; height: 18px !important; fill: #fff !important; }
.sai-send-btn:disabled { opacity: 0.5 !important; cursor: not-allowed !important; }

.sai-suggested-wrap { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; align-self: flex-start !important; max-width: 100% !important; margin-top: -2px !important; }
.sai-suggested-chip {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  color: #E5E7EB !important;
  border-radius: 999px !important;
  padding: 7px 13px !important;
  font-size: 0.78rem !important;
  cursor: pointer !important;
  transition: background 0.15s ease, border-color 0.15s ease !important;
  font-family: inherit !important;
}
.sai-suggested-chip:hover { background: rgba(255,255,255,0.14) !important; border-color: var(--sai-brand) !important; }

.sai-wa-fallback {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-top: 6px !important;
  font-size: 0.8rem !important;
  color: var(--sai-brand) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}
.sai-wa-fallback:hover { text-decoration: underline !important; }

/* Rich pricing/package cards */
.sai-cards-wrap { display: flex !important; flex-direction: column !important; gap: 8px !important; align-self: flex-start !important; max-width: 90% !important; }
.sai-pkg-card {
  background: linear-gradient(145deg, rgba(var(--sai-brand-rgb, 37,211,102),0.08) 0%, rgba(255,255,255,0.04) 100%) !important;
  border: 1px solid rgba(var(--sai-brand-rgb, 37,211,102),0.25) !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
}
.sai-pkg-title { color: #fff !important; font-weight: 700 !important; font-size: 0.9rem !important; margin-bottom: 4px !important; }
.sai-pkg-desc { color: #9CA3AF !important; font-size: 0.8rem !important; line-height: 1.4 !important; margin-bottom: 6px !important; }
.sai-pkg-price { color: var(--sai-brand) !important; font-weight: 700 !important; font-size: 0.88rem !important; }

/* Conversation rating */
.sai-rating-row {
  align-self: center !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: rgba(255,255,255,0.05) !important;
  border-radius: 20px !important;
  padding: 6px 14px !important;
  margin: 4px 0 !important;
}
.sai-rating-label { color: #9CA3AF !important; font-size: 0.75rem !important; }
.sai-rating-btn { background: none !important; border: none !important; cursor: pointer !important; font-size: 1rem !important; padding: 2px 4px !important; border-radius: 6px !important; transition: transform 0.15s ease !important; }
.sai-rating-btn:hover { transform: scale(1.2) !important; }

/* ---------------- Proactive Nudge bubble ---------------- */
.sai-nudge-bubble {
  position: fixed !important;
  bottom: 165px !important;
  right: 25px !important;
  max-width: 240px !important;
  background: #fff !important;
  color: #0F172A !important;
  padding: 12px 34px 12px 14px !important;
  border-radius: 14px 14px 4px 14px !important;
  box-shadow: 0 8px 25px rgba(0,0,0,0.25) !important;
  font-size: 0.85rem !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
  z-index: 999997 !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition: opacity 0.3s ease, transform 0.3s ease !important;
}
.sai-nudge-bubble.sai-nudge-visible { opacity: 1 !important; transform: translateY(0) !important; }
.sai-nudge-close {
  position: absolute !important;
  top: 4px !important;
  right: 8px !important;
  font-size: 1rem !important;
  color: #94A3B8 !important;
  cursor: pointer !important;
}
@media (max-width: 768px) {
  .sai-nudge-bubble { bottom: 150px !important; right: 18px !important; }
}

/* ---------------- Read receipt status line ---------------- */
.sai-status-line {
  align-self: flex-start !important;
  color: #94A3B8 !important;
  font-size: 0.75rem !important;
  font-style: italic !important;
  padding: 2px 4px !important;
}

/* ---------------- Typing preview auto-suggest ---------------- */
.sai-typing-suggest {
  position: absolute !important;
  bottom: 100% !important;
  left: 12px !important;
  right: 12px !important;
  background: #1a2436 !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  margin-bottom: 6px !important;
  z-index: 5 !important;
}
.sai-footer { position: relative !important; }
.sai-typing-suggest:empty { display: none !important; }
.sai-typing-suggest-item {
  padding: 8px 12px !important;
  font-size: 0.82rem !important;
  color: #E5E7EB !important;
  cursor: pointer !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
.sai-typing-suggest-item:last-child { border-bottom: none !important; }
.sai-typing-suggest-item:hover { background: rgba(255,255,255,0.08) !important; }

/* ------------------------------------------------------------------ */
/* 1.5.0 reliability fixes: heartbeat, retry chip, error wrap          */
/* ------------------------------------------------------------------ */

/* "Still thinking" heartbeat — appears after 15s of waiting, never part of history */
.sai-heartbeat {
  padding: 10px 14px !important;
  margin: 4px 10px 8px 0 !important;
  max-width: 85% !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px dashed rgba(255,255,255,0.25) !important;
  border-radius: 12px !important;
  color: rgba(255,255,255,0.65) !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  animation: sai-heartbeat-pulse 2.2s ease-in-out infinite !important;
}
/* BUG FIX: this previously reused the name "sai-pulse", which the header's
   online-status dot (see @keyframes sai-pulse near the top of this file)
   also uses. Two @keyframes rules with the same name silently overwrite
   each other in CSS (the one that appears LAST in the stylesheet wins for
   BOTH usages) — so the header dot's intended box-shadow "ping" animation
   was being replaced by this later opacity-fade animation instead. Renamed
   so each animation keeps its own correct definition. */
@keyframes sai-heartbeat-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}

/* Error block with retry chip + WhatsApp shortcut */
.sai-error-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 6px 10px 10px 0 !important;
}

.sai-retry-btn {
  background: linear-gradient(135deg, var(--sai-brand) 0%, var(--sai-brand-dark) 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 8px 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(var(--sai-brand-rgb, 37,211,102),0.35) !important;
  transition: transform 0.2s ease !important;
}
.sai-retry-btn:hover { transform: scale(1.05) !important; }

.sai-wa-fallback-inline {
  color: rgba(255,255,255,0.7) !important;
  font-size: 12.5px !important;
  text-decoration: underline !important;
  cursor: pointer !important;
}
.sai-wa-fallback-inline:hover { color: #fff !important; }

/* Rendered markdown inside bot replies (**bold**, *italic*, line breaks) */
.sai-msg-bot strong { font-weight: 700 !important; color: #fff !important; }
.sai-msg-bot em { font-style: italic !important; opacity: 0.92 !important; }
.sai-msg-bot br { line-height: 1.4 !important; }
