/* Scoped, high-specificity rules so theme CSS cannot explode the widget */
#kpc-root {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: #1a202c;
  z-index: 2147483000;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  position: static !important;
}

#kpc-root .kpc-is-hidden,
#kpc-root [hidden] {
  display: none !important;
}

#kpc-root .kpc-launcher {
  position: fixed !important;
  bottom: 20px !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  max-width: 56px !important;
  max-height: 56px !important;
  border-radius: 50% !important;
  border: none !important;
  background: #2b6cb0 !important;
  color: #fff !important;
  font-size: 24px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  z-index: 2147483001 !important;
  box-sizing: border-box !important;
}
#kpc-root.kpc-pos-right .kpc-launcher {
  right: 20px !important;
  left: auto !important;
}
#kpc-root.kpc-pos-left .kpc-launcher {
  left: 20px !important;
  right: auto !important;
}
#kpc-root .kpc-launcher.kpc-is-hidden {
  display: none !important;
}
#kpc-root .kpc-launcher-icon {
  line-height: 1 !important;
  pointer-events: none;
}

#kpc-root .kpc-status-dot {
  position: absolute !important;
  top: 2px !important;
  right: 2px !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  border: 2px solid #fff !important;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2) !important;
  z-index: 2 !important;
  pointer-events: none !important;
  display: block !important;
}
#kpc-root .kpc-dot-on { background: #22c55e !important; }
#kpc-root .kpc-dot-off { background: #ef4444 !important; }

#kpc-root .kpc-panel {
  position: fixed !important;
  bottom: 90px !important;
  width: 360px !important;
  max-width: calc(100vw - 24px) !important;
  height: auto !important;
  max-height: min(520px, calc(100vh - 120px)) !important;
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border: 1px solid #e2e8f0 !important;
  z-index: 2147483000 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}
#kpc-root.kpc-pos-right .kpc-panel {
  right: 20px !important;
  left: auto !important;
}
#kpc-root.kpc-pos-left .kpc-panel {
  left: 20px !important;
  right: auto !important;
}
#kpc-root .kpc-panel.kpc-is-hidden {
  display: none !important;
}

#kpc-root .kpc-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 10px 12px !important;
  background: #2b6cb0 !important;
  color: #fff !important;
  flex: 0 0 auto !important;
}
#kpc-root .kpc-header strong {
  color: #fff !important;
  font-size: 15px !important;
}
#kpc-root .kpc-close {
  background: transparent !important;
  border: 0 !important;
  color: #fff !important;
  font-size: 18px !important;
  cursor: pointer !important;
  line-height: 1 !important;
  padding: 4px 6px !important;
  width: auto !important;
  min-width: 0 !important;
}

#kpc-root .kpc-gate,
#kpc-root .kpc-chat {
  padding: 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  overflow: auto !important;
  box-sizing: border-box !important;
}
#kpc-root .kpc-gate.kpc-is-hidden,
#kpc-root .kpc-chat.kpc-is-hidden {
  display: none !important;
}

#kpc-root .kpc-gate label {
  font-size: 12px !important;
  color: #4a5568 !important;
  margin: 0 !important;
}
#kpc-root .kpc-gate input,
#kpc-root .kpc-row input[type='text'] {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 8px 10px !important;
  border: 1px solid #cbd5e0 !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #1a202c !important;
  height: auto !important;
  min-height: 0 !important;
}

#kpc-root .kpc-btn {
  background: #2b6cb0 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px !important;
  padding: 8px 12px !important;
  cursor: pointer !important;
  width: auto !important;
  display: inline-block !important;
}
#kpc-root .kpc-gate .kpc-btn {
  width: 100% !important;
}

#kpc-root .kpc-err { color: #c53030 !important; font-size: 12px !important; margin: 0 !important; }
#kpc-root .kpc-banner {
  background: #fffaf0 !important;
  border: 1px solid #f6ad55 !important;
  color: #7b341e !important;
  padding: 8px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  margin: 0 0 4px !important;
}
#kpc-root .kpc-banner-offline {
  background: #fff5f5 !important;
  border-color: #fc8181 !important;
  color: #742a2a !important;
  margin: 8px 12px 0 !important;
}

#kpc-root .kpc-bots { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; }
#kpc-root .kpc-bot-btn {
  border: 1px solid #bee3f8 !important;
  background: #ebf8ff !important;
  color: #2c5282 !important;
  border-radius: 999px !important;
  padding: 4px 10px !important;
  font-size: 12px !important;
  cursor: pointer !important;
  width: auto !important;
}

#kpc-root .kpc-messages {
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  min-height: 120px !important;
  max-height: 220px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  padding: 4px 0 !important;
}
#kpc-root .kpc-msg {
  max-width: 90% !important;
  padding: 8px 10px !important;
  border-radius: 10px !important;
  background: #edf2f7 !important;
  box-sizing: border-box !important;
}
#kpc-root .kpc-msg-customer { align-self: flex-end !important; background: #bee3f8 !important; }
#kpc-root .kpc-msg-agent,
#kpc-root .kpc-msg-bot { align-self: flex-start !important; }
#kpc-root .kpc-msg-bot { background: #e6fffa !important; }
#kpc-root .kpc-meta { font-size: 11px !important; color: #718096 !important; margin-bottom: 2px !important; }

#kpc-root .kpc-emojis { display: flex !important; gap: 2px !important; flex-wrap: wrap !important; }
#kpc-root .kpc-emojis button {
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
  font-size: 16px !important;
  padding: 2px !important;
  width: auto !important;
  min-width: 0 !important;
  box-shadow: none !important;
}
#kpc-root .kpc-row {
  display: flex !important;
  gap: 6px !important;
  align-items: center !important;
  width: 100% !important;
}
#kpc-root .kpc-row input { flex: 1 1 auto !important; width: auto !important; }

#kpc-root .kpc-typing {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 2px 4px 6px;
  color: #94a3b8;
  font-size: 12px;
  line-height: 1.2;
  font-style: italic;
}
#kpc-root .kpc-typing[hidden] { display: none !important; }
#kpc-root .kpc-typing-dots {
  display: inline-flex;
  gap: 3px;
  align-items: center;
}
#kpc-root .kpc-typing-dots i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #94a3b8;
  display: inline-block;
  animation: kpcTypingBounce 1.2s infinite ease-in-out;
}
#kpc-root .kpc-typing-dots i:nth-child(2) { animation-delay: .15s; }
#kpc-root .kpc-typing-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes kpcTypingBounce {
  0%, 80%, 100% { transform: translateY(0); opacity: .35; }
  40% { transform: translateY(-3px); opacity: 1; }
}
#kpc-root .kpc-attach {
  cursor: pointer !important;
  font-size: 18px !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}
#kpc-root .kpc-chat { position: relative !important; }
#kpc-root .kpc-drop {
  position: absolute !important;
  inset: 40px 8px 70px !important;
  background: rgba(43, 108, 176, 0.15) !important;
  border: 2px dashed #2b6cb0 !important;
  border-radius: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
}
#kpc-root .kpc-drop.kpc-is-hidden { display: none !important; }

#kpc-root .kpc-att { font-size: 12px !important; color: #2c5282 !important; margin-top: 4px !important; }
#kpc-root .kpc-att a { color: #2b6cb0 !important; }

#kpc-root .kpc-btn-end {
  margin-top: 6px !important;
  width: 100% !important;
  background: transparent !important;
  border: 1px solid #cbd5e0 !important;
  color: #718096 !important;
  border-radius: 6px !important;
  padding: 6px !important;
  cursor: pointer !important;
  font-size: 12px !important;
  box-shadow: none !important;
}

#kpc-root .kpc-review {
  text-align: center !important;
  padding: 10px 0 !important;
  border-top: 1px solid #edf2f7 !important;
}
#kpc-root .kpc-review.kpc-is-hidden { display: none !important; }
#kpc-root .kpc-review p { margin: 0 0 8px !important; font-size: 13px !important; color: #4a5568 !important; }
#kpc-root .kpc-review-faces button {
  border: 0 !important;
  background: transparent !important;
  font-size: 28px !important;
  cursor: pointer !important;
  padding: 4px !important;
  width: auto !important;
  box-shadow: none !important;
}
#kpc-root .kpc-review-thanks { color: #276749 !important; font-weight: 600 !important; }
