:root {
  --aicm-bg: #f6f8fc;
  --aicm-panel-bg: #ffffff;
  --aicm-primary: #0e7490;
  --aicm-primary-dark: #155e75;
  --aicm-surface: #e6eef5;
  --aicm-text: #152033;
  --aicm-muted: #4f607a;
  --aicm-border: #d6e1ee;
  --aicm-shadow: 0 20px 48px rgba(10, 44, 74, 0.22);
  --aicm-button-bg: #0e7490;
  --aicm-button-text: #ffffff;
  --aicm-user-bg: #0b88a7;
  --aicm-user-text: #ffffff;
  --aicm-assistant-bg: #ffffff;
  --aicm-assistant-text: #152033;
  --aicm-input-bg: #ffffff;
  --aicm-input-text: #152033;
}

#aicm-root {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 999999;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.aicm-launcher {
  position: relative;
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 999px;
  background: var(--aicm-button-bg);
  color: var(--aicm-button-text);
  font-size: 25px;
  box-shadow: var(--aicm-shadow);
  cursor: pointer;
  transition: transform 0.16s ease, filter 0.16s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.aicm-launcher svg {
  width: 26px;
  height: 26px;
  display: block;
}

.aicm-launcher.has-unread-intro::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 3px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: #dc2626;
  border: 2px solid #ffffff;
  box-shadow: 0 0 0 1px rgba(127, 29, 29, 0.18);
}

.aicm-launcher:hover,
.aicm-launcher:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.05);
}

.aicm-panel {
  position: fixed;
  right: 18px;
  bottom: 84px;
  top: auto;
  width: min(420px, calc(100vw - 22px));
  height: min(720px, calc(100dvh - 96px));
  max-height: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  opacity: 0;
  transform: translateY(18px) scale(0.97);
  pointer-events: none;
  background: var(--aicm-panel-bg);
  border: 1px solid var(--aicm-border);
  border-radius: 20px;
  padding: 14px;
  box-shadow: var(--aicm-shadow);
  box-sizing: border-box;
  overflow: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.aicm-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.aicm-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  flex: 0 0 auto;
}

.aicm-title-wrap h2 {
  margin: 0;
  color: var(--aicm-text);
  font-size: 18px;
}

.aicm-title-wrap p {
  margin: 5px 0 0;
  color: var(--aicm-muted);
  font-size: 13px;
  line-height: 1.35;
}

.aicm-close {
  border: 0;
  background: var(--aicm-surface);
  color: var(--aicm-primary-dark);
  width: 34px;
  height: 34px;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex: 0 0 auto;
}

.aicm-close,
.aicm-send,
.aicm-launcher {
  touch-action: manipulation;
}

.aicm-close svg {
  width: 18px;
  height: 18px;
  display: block;
}

.aicm-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--aicm-bg);
  border-radius: 14px;
  border: 1px solid var(--aicm-border);
  padding: 12px;
  display: block;
}

.aicm-warning {
  flex: 0 0 auto;
  background: #fff3bf;
  border: 1px solid #f2c94c;
  border-left: 4px solid #d89b00;
  border-radius: 12px;
  color: #4b3a00;
  padding: 10px 12px;
  font-size: 12.5px;
  line-height: 1.4;
}

.aicm-warning strong {
  display: block;
  margin-bottom: 3px;
  color: #332600;
  font-size: 13px;
}

.aicm-message {
  box-sizing: border-box;
  position: relative;
  clear: both;
  border-radius: 12px;
  padding: 10px 11px;
  line-height: 1.45;
  font-size: 14px;
  height: auto !important;
  max-height: none !important;
  min-height: 0;
  overflow: visible !important;
  overflow-wrap: anywhere;
  word-break: normal;
  line-clamp: unset !important;
  -webkit-line-clamp: unset !important;
}

.aicm-message + .aicm-message {
  margin-top: 8px;
}

.aicm-message-body {
  min-width: 0;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  line-clamp: unset !important;
  -webkit-line-clamp: unset !important;
}

.aicm-agent-avatar {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: #e6f5f8;
  color: var(--aicm-primary-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 32px;
  border: 1px solid #bfdfeb;
}

.aicm-agent-avatar svg {
  width: 19px;
  height: 19px;
  display: block;
}

.aicm-message-human .aicm-agent-avatar {
  background: #ecf8fb;
  color: var(--aicm-primary-dark);
}

.aicm-agent-label {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-bottom: 5px;
  color: var(--aicm-muted);
  font-size: 12px;
  line-height: 1.25;
  flex-wrap: wrap;
}

.aicm-agent-label span:first-child {
  color: var(--aicm-text);
  font-weight: 700;
}

.aicm-message p {
  margin: 0 0 8px;
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
}

.aicm-message p:last-child {
  margin-bottom: 0;
}

.aicm-message-content {
  display: block !important;
  height: auto !important;
  max-width: 100%;
  max-height: none !important;
  overflow: visible !important;
  overflow-wrap: anywhere;
  white-space: normal !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
}

.aicm-message-content > :first-child {
  margin-top: 0;
}

.aicm-message-content > :last-child {
  margin-bottom: 0;
}

.aicm-message-content h3,
.aicm-message-content h4,
.aicm-message-content h5,
.aicm-message-content h6 {
  color: inherit;
  font-size: 1em;
  line-height: 1.35;
  margin: 8px 0 5px;
}

.aicm-message-content a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.aicm-message-content ul,
.aicm-message-content ol {
  margin: 6px 0 8px;
  padding-left: 20px;
}

.aicm-message-content li {
  margin: 3px 0;
}

.aicm-message-content blockquote {
  border-left: 3px solid var(--aicm-border);
  margin: 8px 0;
  padding-left: 10px;
}

.aicm-message-content code,
.aicm-message-content pre {
  background: rgba(79, 96, 122, 0.12);
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
}

.aicm-message-content code {
  font-size: 0.92em;
  padding: 1px 4px;
}

.aicm-message-content pre {
  margin: 8px 0;
  max-width: 100%;
  overflow-x: auto;
  padding: 8px;
  white-space: pre;
}

.aicm-message-content pre code {
  background: transparent;
  border-radius: 0;
  padding: 0;
}

.aicm-message-user {
  margin-left: auto;
  background: var(--aicm-user-bg);
  color: var(--aicm-user-text);
  max-width: 88%;
}

.aicm-message-assistant {
  margin-right: auto;
  background: var(--aicm-assistant-bg);
  color: var(--aicm-assistant-text);
  border: 1px solid var(--aicm-border);
  max-width: 96%;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  line-clamp: unset !important;
  -webkit-line-clamp: unset !important;
}

.aicm-typing {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 20px;
}

.aicm-typing span {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--aicm-primary-dark);
  animation: aicm-typing-dot 1.05s ease-in-out infinite;
  transform: scale(0.62);
  opacity: 0.45;
}

.aicm-typing span:nth-child(2) {
  animation-delay: 0.15s;
}

.aicm-typing span:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes aicm-typing-dot {
  0%,
  80%,
  100% {
    transform: scale(0.62);
    opacity: 0.45;
  }

  35% {
    transform: scale(1.18);
    opacity: 1;
  }
}

.aicm-form {
  display: grid;
  gap: 8px;
  flex: 0 0 auto;
}

.aicm-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  resize: vertical;
  min-height: 66px;
  max-height: 160px;
  border: 1px solid var(--aicm-border);
  border-radius: 12px;
  padding: 10px 12px;
  background: var(--aicm-input-bg);
  color: var(--aicm-input-text);
}

.aicm-send {
  border: 0;
  border-radius: 12px;
  background: var(--aicm-primary);
  color: var(--aicm-button-text);
  min-height: 44px;
  font-weight: 600;
  cursor: pointer;
}

.aicm-send:hover,
.aicm-send:focus-visible {
  background: var(--aicm-primary-dark);
}

@media (max-width: 600px) {
  #aicm-root {
    right: 10px;
    bottom: 10px;
  }

  .aicm-panel {
    width: calc(100vw - 20px);
    right: 10px;
    top: auto;
    height: min(680px, calc(100dvh - 84px));
    max-height: none;
    border-radius: 16px;
    bottom: 72px;
  }

  .aicm-header {
    gap: 12px;
  }

  .aicm-title-wrap h2 {
    font-size: 17px;
  }

  .aicm-input {
    min-height: 74px;
    font-size: 16px;
  }

}
