/* 在线客服接待系统 · 访客端悬浮窗样式 */
#kefu-root {
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
#kefu-root * { box-sizing: border-box; }

/* 悬浮气泡 */
#kefu-root .kefu-bubble {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--kefu-primary);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  transition: transform .15s ease;
  position: relative;
}
#kefu-root .kefu-bubble:hover { transform: scale(1.06); }
#kefu-root .kefu-bubble-icon { font-size: 26px; }
#kefu-root .kefu-bubble-badge {
  position: absolute; top: -4px; right: -4px;
  min-width: 18px; height: 18px; border-radius: 9px;
  background: #EF4444; color: #fff;
  font-size: 11px; align-items: center; justify-content: center;
  padding: 0 5px; font-weight: 600;
}

/* 聊天面板 */
#kefu-root .kefu-panel {
  width: 360px; max-width: calc(100vw - 40px);
  height: 480px; max-height: calc(100vh - 80px);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
  overflow: hidden;
  display: flex; flex-direction: column;
  border: 1px solid #E5E7EB;
  animation: kefu-slide-up .2s ease;
}
@keyframes kefu-slide-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 头部 */
#kefu-root .kefu-header {
  background: var(--kefu-primary);
  color: #fff;
  padding: 12px 16px;
  display: flex; align-items: center; gap: 10px;
  flex-shrink: 0;
}
#kefu-root .kefu-header-title { font-weight: 600; font-size: 15px; }
#kefu-root .kefu-header-status { font-size: 12px; opacity: .85; flex: 1; }
#kefu-root .kefu-header-close {
  cursor: pointer; font-size: 20px; line-height: 1;
  padding: 0 2px; opacity: .9;
}
#kefu-root .kefu-header-close:hover { opacity: 1; }

/* 消息区 */
#kefu-root .kefu-body { flex: 1; overflow-y: auto; padding: 12px 12px 6px; background: #F8FAFC; }
#kefu-root .kefu-msgs { display: flex; flex-direction: column; gap: 10px; }

#kefu-root .kefu-msg { display: flex; flex-direction: column; max-width: 86%; }
#kefu-root .kefu-msg-who { font-size: 11px; color: #9CA3AF; margin-bottom: 3px; }
#kefu-root .kefu-msg-bubble {
  padding: 9px 12px;
  border-radius: 10px;
  font-size: 13.5px;
  word-break: break-word;
  white-space: pre-wrap;
}
#kefu-root .kefu-msg-agent { align-self: flex-start; }
#kefu-root .kefu-msg-agent .kefu-msg-bubble { background: #fff; border: 1px solid #E5E7EB; border-top-left-radius: 2px; color: #1F2937; }
#kefu-root .kefu-msg-self { align-self: flex-end; align-items: flex-end; }
#kefu-root .kefu-msg-self .kefu-msg-bubble { background: var(--kefu-primary); color: #fff; border-top-right-radius: 2px; }
#kefu-root .kefu-msg-system { align-self: center; max-width: 100%; }
#kefu-root .kefu-msg-system .kefu-msg-who { display: none; }
#kefu-root .kefu-msg-system .kefu-msg-bubble { background: #EEF2FF; color: #4B5563; font-size: 12.5px; text-align: center; border-radius: 14px; padding: 6px 14px; }
#kefu-root .kefu-msg-img { max-width: 220px; border-radius: 8px; display: block; }

/* FAQ */
#kefu-root .kefu-faq { display: flex; flex-direction: column; gap: 6px; margin-bottom: 4px; }
#kefu-root .kefu-faq-title { font-size: 12px; color: #6B7280; }
#kefu-root .kefu-faq-btn {
  border: 1px solid #BFDBFE; background: #EFF6FF; color: #1D4ED8;
  border-radius: 16px; padding: 5px 12px; font-size: 12.5px;
  cursor: pointer; text-align: left; align-self: flex-start;
  transition: background .15s;
}
#kefu-root .kefu-faq-btn:hover { background: #DBEAFE; }

/* 排队提示 */
#kefu-root .kefu-queue {
  background: #FFFBEB; border-top: 1px solid #FDE68A;
  color: #92400E; font-size: 12.5px;
  padding: 8px 14px; text-align: center;
}

/* 评价 */
#kefu-root .kefu-rating {
  background: #fff; border-top: 1px solid #E5E7EB;
  padding: 12px 16px; text-align: center;
  flex-shrink: 0;
}
#kefu-root .kefu-rating-title { font-size: 14px; font-weight: 600; color: #1F2937; margin-bottom: 8px; }
#kefu-root .kefu-rating-stars { font-size: 26px; letter-spacing: 6px; cursor: pointer; color: #F59E0B; margin-bottom: 8px; }
#kefu-root .kefu-rating-note {
  width: 100%; border: 1px solid #D1D5DB; border-radius: 8px;
  padding: 7px 10px; font-size: 13px; margin-bottom: 8px; box-sizing: border-box;
}
#kefu-root .kefu-rating-submit {
  background: var(--kefu-primary); color: #fff; border: none;
  border-radius: 8px; padding: 8px 0; width: 100%; font-size: 14px; cursor: pointer;
}
#kefu-root .kefu-rating-submit:hover { opacity: .9; }

/* 输入区 */
#kefu-root .kefu-input {
  border-top: 1px solid #E5E7EB;
  padding: 8px 10px;
  display: flex; align-items: flex-end; gap: 8px;
  background: #fff; flex-shrink: 0;
}
#kefu-root .kefu-input-tools { display: flex; }
#kefu-root .kefu-btn-image {
  cursor: pointer; font-size: 18px; padding: 2px 4px; user-select: none;
}
#kefu-root .kefu-input-text {
  flex: 1; border: 1px solid #D1D5DB; border-radius: 8px;
  padding: 8px 10px; font-size: 13.5px; resize: none;
  outline: none; min-height: 36px; max-height: 90px;
  font-family: inherit; line-height: 1.5;
}
#kefu-root .kefu-input-text:focus { border-color: var(--kefu-primary); }
#kefu-root .kefu-btn-send {
  background: var(--kefu-primary); color: #fff; border: none;
  border-radius: 8px; padding: 8px 16px; font-size: 13.5px; cursor: pointer;
  flex-shrink: 0;
}
#kefu-root .kefu-btn-send:hover { opacity: .9; }
