/* 独立客服系统 — 访客嵌入端 */
#abc-cs-root {
  --cs-accent: #0f766e;
  --cs-bg: #fff;
  --cs-muted: #6b7280;
  --cs-line: #e5e7eb;
  --cs-bot: #f3f4f6;
  --abc-cs-fab-size: 56px;
  font-family: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  position: fixed !important;
  left: auto;
  top: auto;
  right: 16px !important;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  z-index: 2147482500 !important;
  pointer-events: none;
  /* 尺寸由 cs.js 的 fabSize / 内联样式控制，此处不写死 88px */
  width: var(--abc-cs-fab-size) !important;
  height: var(--abc-cs-fab-size) !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
#abc-cs-root.is-drag-pos {
  right: auto !important;
  bottom: auto !important;
}
#abc-cs-root * { box-sizing: border-box; }
#abc-cs-root button { border: 0; cursor: pointer; -webkit-appearance: none; appearance: none; }

#abc-cs-root .abc-cs-fab {
  pointer-events: auto !important;
  position: relative !important;
  width: var(--abc-cs-fab-size) !important;
  height: var(--abc-cs-fab-size) !important;
  min-width: var(--abc-cs-fab-size) !important;
  min-height: var(--abc-cs-fab-size) !important;
  max-width: var(--abc-cs-fab-size) !important;
  max-height: var(--abc-cs-fab-size) !important;
  border-radius: 50% !important;
  background: #0f766e !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(15, 118, 110, .45) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px;
  transition: opacity .18s ease, transform .18s ease;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  cursor: grab;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  font-size: 12px !important;
  opacity: 1 !important;
  visibility: visible !important;
}
#abc-cs-root .abc-cs-fab:active,
#abc-cs-root .abc-cs-fab.is-dragging { cursor: grabbing; }
#abc-cs-root .abc-cs-fab.is-dragging { transition: none; transform: scale(1.06); }
#abc-cs-root .abc-cs-fab-glyph {
  width: 22px; height: 16px; background: #fff; border-radius: 5px;
  position: relative; display: block; pointer-events: none; flex-shrink: 0;
}
#abc-cs-root .abc-cs-fab-glyph:after {
  content: ""; position: absolute; left: 5px; bottom: -5px;
  border: 5px solid transparent; border-top-color: #fff; border-bottom: 0;
  width: 0; height: 0;
}
#abc-cs-root .abc-cs-fab-txt {
  font-size: 11px !important; font-weight: 700 !important; line-height: 1 !important;
  letter-spacing: 0.06em; pointer-events: none; color: #fff !important; display: block !important;
}
#abc-cs-root .abc-cs-fab-icon {
  width: 100% !important; height: 100% !important; object-fit: cover;
  pointer-events: none; display: block; border-radius: 50%;
}
#abc-cs-root .abc-cs-fab.has-custom-icon.icon-ready {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  overflow: hidden !important;
}
#abc-cs-root .abc-cs-fab.has-custom-icon .abc-cs-fab-glyph,
#abc-cs-root .abc-cs-fab.has-custom-icon .abc-cs-fab-txt { display: none !important; }
#abc-cs-root .abc-cs-fab.is-hide { opacity: 0 !important; pointer-events: none !important; transform: scale(.85); }
#abc-cs-root .abc-cs-badge {
  position: absolute; top: -2px; right: -2px;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px; background: #dc2626; color: #fff;
  font-size: 12px; line-height: 20px; text-align: center;
  display: none; pointer-events: none;
}
#abc-cs-root .abc-cs-badge.on { display: block; }

.abc-cs-panel,
#abc-cs-panel {
  pointer-events: auto;
  position: fixed !important;
  z-index: 2147482600 !important;
  left: 8px;
  right: 8px;
  top: auto;
  bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  width: auto;
  height: min(720px, calc(100vh - 16px));
  max-width: none;
  max-height: none;
  background: var(--cs-bg, #fff);
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0,0,0,.22);
  display: flex; flex-direction: column; overflow: hidden;
  opacity: 0; transform: translateY(16px);
  pointer-events: none;
  transition: .2s ease;
  box-sizing: border-box;
}
#abc-cs-panel.is-open,
.abc-cs-panel.is-open {
  opacity: 1; transform: none; pointer-events: auto;
}
#abc-cs-panel.is-mobile-full,
.abc-cs-panel.is-mobile-full {
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.abc-cs-panel.place-below,
.abc-cs-panel.align-left {
  /* legacy no-op; layout handled in JS */
}

.abc-cs-hd {
  flex: 0 0 auto;
  padding: 14px 16px;
  background: var(--cs-accent); color: #fff;
  display: flex; justify-content: space-between; align-items: center;
}
.abc-cs-hd h3 { margin: 0; font-size: 16px; }
.abc-cs-hd p { margin: 3px 0 0; font-size: 12px; opacity: .9; }
.abc-cs-x {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(255,255,255,.18); color: #fff; font-size: 20px;
}

.abc-cs-status {
  flex: 0 0 auto;
  padding: 6px 12px;
  font-size: 12px;
  color: var(--cs-muted);
  background: #fafafa;
  border-bottom: 1px solid var(--cs-line);
}

.abc-cs-msgs {
  flex: 1 1 auto; min-height: 0;
  overflow-x: hidden; overflow-y: auto; padding: 12px;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  background: #fff;
}
.abc-cs-row { display: flex; margin: 0 0 10px; max-width: 100%; }
.abc-cs-row.me { justify-content: flex-end; }
.abc-cs-bubble {
  max-width: 82%;
  padding: 9px 12px;
  border-radius: 12px;
  font-size: 14px; line-height: 1.45;
  white-space: pre-wrap; word-break: break-word;
  overflow: hidden;
}
.abc-cs-row.bot .abc-cs-bubble { background: var(--cs-bot); color: #111; border-bottom-left-radius: 4px; }
.abc-cs-row.me .abc-cs-bubble { background: var(--cs-accent); color: #fff; border-bottom-right-radius: 4px; }
.abc-cs-bubble.is-img {
  padding: 4px;
  background: transparent !important;
  max-width: min(280px, 78vw);
}
.abc-cs-bubble.is-img img {
  display: block; width: auto; height: auto;
  max-width: 100%; max-height: min(42vh, 320px);
  object-fit: contain; border-radius: 10px; background: #f3f4f6;
}

.abc-cs-bar {
  flex: 0 0 auto;
  display: flex; gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid var(--cs-line);
  align-items: center;
}
.abc-cs-bar input[type="text"],
.abc-cs-bar #abc-cs-input {
  flex: 1; height: 40px;
  border: 1px solid var(--cs-line);
  border-radius: 10px; padding: 0 12px; font-size: 14px; outline: none;
}
.abc-cs-bar #abc-cs-input:focus { border-color: var(--cs-accent); }
.abc-cs-bar button {
  height: 40px; padding: 0 14px; border-radius: 10px;
  background: var(--cs-accent); color: #fff; font-weight: 600; font-size: 14px;
}
.abc-cs-bar button:disabled { opacity: .5; }
.abc-cs-img {
  width: 40px !important; padding: 0 !important;
  background: #e5e7eb !important; color: #111 !important; flex: 0 0 auto;
}
.abc-cs-bubble img { cursor: zoom-in; }
.abc-cs-lightbox {
  display: none; position: fixed; inset: 0; z-index: 2147483000;
  background: rgba(0,0,0,.82); align-items: center; justify-content: center;
  pointer-events: auto; padding: 16px;
}
.abc-cs-lightbox.on { display: flex; }
.abc-cs-lightbox img { max-width: 96vw; max-height: 90vh; border-radius: 8px; }
