/* WordPress-optimierte CSS für Chat Widget */
/* Maximale Spezifität für WordPress-Theme-Übersteuerung */

/* Widget Container - Höchste Priorität für WordPress */
html body.wp-admin #chat-widget,
html body.admin-bar #chat-widget,
html body.home #chat-widget,
html body.page #chat-widget,
html body.single #chat-widget,
html body.archive #chat-widget,
html body.search #chat-widget,
html body.error404 #chat-widget,
html body #chat-widget,
html .site #chat-widget,
html #page #chat-widget,
html #main #chat-widget,
html #content #chat-widget,
html .wrapper #chat-widget,
html .container #chat-widget {
  position: fixed !important;
  bottom: 20px !important;
  right: 20px !important;
  width: 350px !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
  z-index: 2147483647 !important; /* Maximaler z-index */
  cursor: default !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  backdrop-filter: blur(10px) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: #333333 !important;
  text-align: left !important;
  direction: ltr !important;
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 350px !important;
  max-width: 350px !important;
  min-height: auto !important;
  max-height: none !important;
}

/* WordPress Reset - Überschreibt Theme-Styles mit maximaler Spezifität */
html body #chat-widget,
html body #chat-widget *,
html body #chat-widget *::before,
html body #chat-widget *::after {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  outline: none !important;
  background: none !important;
  color: inherit !important;
  text-decoration: none !important;
  list-style: none !important;
  vertical-align: baseline !important;
  font-weight: normal !important;
  font-style: normal !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  text-shadow: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

html body #chat-widget *:not(svg):not(path):not(use) {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
}

/* Spezifische WordPress Theme-Overrides */
/* Twenty Twenty-Three, Twenty Twenty-Two etc. */
.wp-site-blocks #chat-widget,
.wp-block-group #chat-widget,
body.wp-admin #chat-widget {
  position: fixed !important;
  z-index: 2147483647 !important;
}

/* Beliebte Theme-Fixes */
/* Astra Theme */
.ast-container #chat-widget,
.ast-separate-container #chat-widget,
/* GeneratePress */
.inside-article #chat-widget,
.site-content #chat-widget,
/* OceanWP */
.site-main #chat-widget,
.content-area #chat-widget,
/* Neve Theme */
.nv-content-wrap #chat-widget,
/* Kadence Theme */
.content-container #chat-widget {
  position: fixed !important;
  z-index: 2147483647 !important;
}

/* Mobile Responsive Design */
@media (max-width: 480px) {
  body #chat-widget,
  .site #chat-widget,
  #page #chat-widget {
    width: calc(100vw - 40px) !important;
    right: 20px !important;
    left: 20px !important;
    bottom: 20px !important;
  }
  
  #chat-widget #chat-box {
    height: 60vh !important;
    max-height: 400px !important;
  }
}

@media (max-width: 320px) {
  body #chat-widget,
  .site #chat-widget,
  #page #chat-widget {
    width: calc(100vw - 20px) !important;
    right: 10px !important;
    left: 10px !important;
    bottom: 10px !important;
  }
}

/* Header */
html body #chat-widget #chat-header {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  color: white !important;
  padding: 16px 20px !important;
  cursor: pointer !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  transition: all 0.3s ease !important;
  border-radius: 12px 12px 0 0 !important;
  border: none !important;
  margin: 0 !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
}

/* Dragging-Zustand */
html body #chat-widget.dragging #chat-header {
  cursor: move !important;
  opacity: 0.9 !important;
  transform: scale(1.02) !important;
}

#chat-widget #chat-header:hover {
  background: linear-gradient(135deg, #5a67d8 0%, #6b46c1 100%) !important;
  transform: translateY(-1px) !important;
}

#chat-widget #chat-title {
  font-weight: 600 !important;
  font-size: 16px !important;
  color: white !important;
  text-decoration: none !important;
}

#chat-widget #chat-toggle-icon {
  font-size: 18px !important;
  color: white !important;
}

#chat-widget .beta-badge {
  background-color: rgba(255, 255, 255, 0.2) !important;
  color: white !important;
  font-size: 10px !important;
  font-weight: bold !important;
  padding: 2px 4px !important;
  border-radius: 4px !important;
  margin-left: 3px !important;
  opacity: 0.8 !important;
}

/* Chat Box */
html body #chat-widget #chat-box {
  background: #ffffff !important;
  height: 450px !important;
  max-height: 450px !important;
  min-height: 450px !important;
  display: flex !important;
  flex-direction: column !important;
  border-radius: 0 0 12px 12px !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  overflow: hidden !important;
  position: relative !important;
}

html body #chat-widget #chat-box.hidden {
  display: none !important;
}

/* Messages Area */
html body #chat-widget #chat-messages {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: 320px !important;
  padding: 20px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  font-size: 14px !important;
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  background: linear-gradient(180deg, #fafafa 0%, #ffffff 100%) !important;
  scrollbar-width: thin !important;
  scrollbar-color: #e2e8f0 transparent !important;
  position: relative !important;
}

#chat-widget #chat-messages::-webkit-scrollbar {
  width: 6px !important;
}

#chat-widget #chat-messages::-webkit-scrollbar-track {
  background: transparent !important;
}

#chat-widget #chat-messages::-webkit-scrollbar-thumb {
  background: #e2e8f0 !important;
  border-radius: 3px !important;
}

#chat-widget #chat-messages::-webkit-scrollbar-thumb:hover {
  background: #cbd5e0 !important;
}

/* Input Area */
#chat-widget #chat-input-area {
  display: flex !important;
  border-top: 1px solid #e2e8f0 !important;
  background: #ffffff !important;
  padding: 16px !important;
  gap: 12px !important;
}

#chat-widget #chat-input {
  flex-grow: 1 !important;
  border: 2px solid #e2e8f0 !important;
  padding: 12px 16px !important;
  font-size: 14px !important;
  overflow-wrap: break-word !important;
  min-height: 20px !important;
  resize: none !important;
  border-radius: 24px !important;
  background: #f8fafc !important;
  transition: all 0.2s ease !important;
  font-family: inherit !important;
  color: #334155 !important;
  outline: none !important;
}

#chat-widget #chat-input:focus {
  border-color: #667eea !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1) !important;
}

/* Touch-optimierte Eingabe auf Mobile */
@media (max-width: 480px) {
  #chat-widget #chat-input {
    font-size: 16px !important; /* Verhindert Zoom auf iOS */
    padding: 12px !important;
  }
  
  #chat-widget #chat-send {
    padding: 12px 18px !important;
    font-size: 18px !important;
    min-width: 50px !important;
  }
  
  #chat-widget #chat-header {
    padding: 15px !important;
    touch-action: manipulation !important;
  }
  
  #chat-widget .chat-actions {
    flex-direction: row !important;
  }
  
  #chat-widget #send-chat-log, 
  #chat-widget #clear-chat-history {
    width: 50% !important;
    padding: 16px 12px !important;
  }
  
  #chat-widget #clear-chat-history {
    border-left: 1px solid #e2e8f0 !important;
    border-top: none !important;
  }
}

/* Send Button */
#chat-widget #chat-send {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  color: white !important;
  border: none !important;
  padding: 12px 16px !important;
  cursor: pointer !important;
  font-size: 16px !important;
  transition: all 0.3s ease !important;
  border-radius: 24px !important;
  min-width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3) !important;
}

#chat-widget #chat-send:hover {
  background: linear-gradient(135deg, #5a67d8 0%, #6b46c1 100%) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4) !important;
}

#chat-widget #chat-send:disabled {
  background: #e2e8f0 !important;
  color: #a0aec0 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

#chat-widget #chat-send.cooldown {
  background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important;
  position: relative !important;
}

/* Disclaimer */
#chat-widget #chat-disclaimer {
  font-size: 11px !important;
  color: rgba(100, 100, 100, 0.6) !important;
  padding: 6px 10px !important;
  text-align: center !important;
  border-top: 1px solid rgba(150, 150, 150, 0.3) !important;
  background: #ffffff !important;
}

/* Action Buttons */
#chat-widget .chat-actions {
  display: flex !important;
  border-top: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
}

#chat-widget #send-chat-log, 
#chat-widget #clear-chat-history {
  background: transparent !important;
  border: none !important;
  width: 50% !important;
  padding: 14px 12px !important;
  font-size: 13px !important;
  cursor: pointer !important;
  color: #64748b !important;
  transition: all 0.2s ease !important;
  font-family: inherit !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-weight: 500 !important;
}

#chat-widget #send-chat-log:hover {
  background: #f1f5f9 !important;
  color: #667eea !important;
}

#chat-widget #clear-chat-history {
  border-left: 1px solid #e2e8f0 !important;
}

#chat-widget #clear-chat-history:hover {
  background: #fef2f2 !important;
  color: #dc2626 !important;
}

#chat-widget #send-chat-log svg, 
#chat-widget #clear-chat-history svg {
  flex-shrink: 0 !important;
}

/* Low Confidence Warning Styles */
html body #chat-widget .message-wrapper[data-sender="Bot"] .message-bubble.low-confidence {
  background: #fef2f2 !important;
  border: 1px solid #fca5a5 !important;
  color: #dc2626 !important;
}

/* Reveal Button */
html body #chat-widget .reveal-btn {
  background: #f59e0b !important;
  color: white !important;
  border: none !important;
  padding: 8px 16px !important;
  margin-top: 8px !important;
  cursor: pointer !important;
  font-size: 13px !important;
  border-radius: 20px !important;
  transition: all 0.2s ease !important;
  font-family: inherit !important;
  font-weight: 500 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  box-shadow: 0 2px 4px rgba(245, 158, 11, 0.2) !important;
}

html body #chat-widget .reveal-btn:hover {
  background: #d97706 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px rgba(245, 158, 11, 0.3) !important;
}

html body #chat-widget .reveal-btn:active {
  transform: translateY(0) !important;
}

/* Original Answer Display */
html body #chat-widget .original-answer {
  line-height: 1.4 !important;
}

/* Confidence Warning */
html body #chat-widget .confidence-warning {
  margin-top: 8px !important;
  padding-top: 8px !important;
  border-top: 1px solid #e2e8f0 !important;
}

html body #chat-widget .confidence-warning small {
  color: #dc2626 !important;
  font-style: italic !important;
  font-size: 12px !important;
}

#chat-widget .hidden-answer {
  background: #f9f9f9 !important;
  border-left: 3px solid #667eea !important;
  padding: 8px !important;
  font-size: 14px !important;
  margin-top: 8px !important;
  border-radius: 4px !important;
}

/* Message Bubbles */
#chat-widget .message-wrapper {
  margin-bottom: 16px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

#chat-widget .message-wrapper.failed {
  opacity: 0.7 !important;
}

#chat-widget .message-bubble {
  padding: 12px 16px !important;
  border-radius: 18px !important;
  max-width: 80% !important;
  word-wrap: break-word !important;
  line-height: 1.4 !important;
  font-size: 14px !important;
}

#chat-widget .message-wrapper[data-sender="Du"] {
  align-items: flex-end !important;
}

#chat-widget .message-wrapper[data-sender="Du"] .message-bubble {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  color: white !important;
  border-bottom-right-radius: 6px !important;
}

#chat-widget .message-wrapper[data-sender="Bot"] {
  align-items: flex-start !important;
}

#chat-widget .message-wrapper[data-sender="Bot"] .message-bubble {
  background: #f1f5f9 !important;
  color: #334155 !important;
  border-bottom-left-radius: 6px !important;
  border: 1px solid #e2e8f0 !important;
}

#chat-widget .message-wrapper[data-sender="System"] .message-bubble {
  background: #fef2f2 !important;
  color: #dc2626 !important;
  border: 1px solid #fecaca !important;
  font-size: 13px !important;
  max-width: 100% !important;
  align-self: center !important;
  text-align: center !important;
}

/* Markdown-Styling für Bot-Antworten */
#chat-widget .message-content {
  line-height: 1.4 !important;
}

#chat-widget .message-content strong {
  font-weight: bold !important;
  color: inherit !important;
}

#chat-widget .message-content em {
  font-style: italic !important;
}

#chat-widget .message-content code {
  background: rgba(0, 0, 0, 0.1) !important;
  padding: 2px 4px !important;
  border-radius: 3px !important;
  font-family: monospace !important;
  font-size: 0.9em !important;
}

#chat-widget .message-content ul {
  margin: 5px 0 !important;
  padding-left: 20px !important;
}

#chat-widget .message-content li {
  margin: 2px 0 !important;
}

#chat-widget .message-content p {
  margin: 5px 0 !important;
}

#chat-widget .message-content a {
  color: #667eea !important;
  text-decoration: underline !important;
}

/* Loading States und Error Feedback */
#chat-widget .message-status {
  font-size: 12px !important;
  color: #666 !important;
  margin-top: 3px !important;
  font-style: italic !important;
}

#chat-widget .message-status.sending {
  color: #667eea !important;
}

#chat-widget .message-status.failed {
  color: #d63638 !important;
}

#chat-widget .message-status.retry {
  color: #667eea !important;
  cursor: pointer !important;
  text-decoration: underline !important;
}

#chat-widget .message-status.retry:hover {
  color: #5a67d8 !important;
}

#chat-widget .error-details {
  background: #fef7f7 !important;
  border: 1px solid #fecaca !important;
  border-radius: 4px !important;
  padding: 8px !important;
  margin-top: 5px !important;
  font-size: 12px !important;
  color: #991b1b !important;
}

/* Typing Indicator */
#chat-widget #typing-indicator {
  padding: 5px 20px !important;
  color: #64748b !important;
  font-style: italic !important;
  font-size: 13px !important;
}

/* Typing Animation */
@keyframes typing {
  0%, 60%, 100% { transform: translateY(0) !important; }
  30% { transform: translateY(-10px) !important; }
}

#chat-widget #typing-indicator .dot {
  animation: typing 1.4s infinite ease-in-out !important;
  display: inline-block !important;
}

#chat-widget #typing-indicator .dot:nth-child(1) { 
  animation-delay: -0.32s !important; 
}

#chat-widget #typing-indicator .dot:nth-child(2) { 
  animation-delay: -0.16s !important; 
}

/* WordPress Theme Overrides */
#chat-widget a,
#chat-widget a:hover,
#chat-widget a:focus,
#chat-widget a:active {
  text-decoration: none !important;
  color: inherit !important;
}

#chat-widget button {
  background: none !important;
  border: none !important;
  font-family: inherit !important;
  cursor: pointer !important;
}

/* Fix für WordPress Admin Bar */
@media screen and (max-width: 782px) {
  body.admin-bar #chat-widget {
    bottom: 20px !important; /* Bleibt gleich auch mit Admin Bar */
  }
}

/* Fix für WordPress Themes die Transform verwenden */
#chat-widget {
  transform: none !important;
}

/* Accessibility */
#chat-widget:focus,
#chat-widget *:focus {
  outline: 2px solid #667eea !important;
  outline-offset: 2px !important;
}