.cm-chatbot {
  --cm-gaze-x: 0px;
  --cm-gaze-y: 0px;
  position: fixed;
  z-index: 600;
  inset: 0;
  color: var(--text, #0f172a);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .94rem;
  line-height: 1.45;
  pointer-events: none;
}
.cm-chatbot *, .cm-chatbot *::before, .cm-chatbot *::after { box-sizing: border-box; }
.cm-chatbot button, .cm-chatbot textarea { font: inherit; }
.cm-chatbot button { cursor: pointer; }
.cm-chatbot button:focus-visible, .cm-chatbot a:focus-visible, .cm-chatbot textarea:focus-visible { outline: 3px solid #0f766e; outline-offset: 3px; }
.cm-chatbot-launcher {
  position: absolute;
  right: calc(20px + env(safe-area-inset-right));
  bottom: calc(20px + env(safe-area-inset-bottom));
  display: grid;
  width: 78px;
  height: 78px;
  place-items: center;
  padding: 5px;
  overflow: visible;
  border: 1px solid rgba(37, 99, 235, .23);
  border-radius: 24px;
  background: linear-gradient(145deg, #ffffff 12%, #eaf2ff 62%, #f1edff);
  box-shadow: 0 12px 35px rgba(15, 23, 42, .18), 0 2px 9px rgba(37, 99, 235, .1);
  pointer-events: auto;
  transition: transform .22s ease, box-shadow .22s ease;
}
.cm-chatbot-launcher:hover { transform: translateY(-3px); box-shadow: 0 16px 42px rgba(15, 23, 42, .2); }
.cm-chatbot-open .cm-chatbot-launcher { opacity: 0; pointer-events: none; }
.cm-chatbot-launcher-mascot { display: block; width: 66px; height: 66px; }
.cm-monster-svg { display: block; width: 100%; height: 100%; overflow: visible; }
.cm-monster-face, .cm-monster-eye, .cm-monster-core, .cm-monster-circuit, .cm-monster-node, .cm-monster-bars {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .25s ease, opacity .25s ease, fill .25s ease, stroke .25s ease;
}
.cm-monster-inner { transform-box: fill-box; transform-origin: center; }
.cm-monster-face { animation: cm-monster-breathe 6s ease-in-out infinite; }
.cm-monster-eye { animation: cm-monster-blink 8s ease-in-out infinite; }
.cm-monster-core { animation: cm-monster-core-idle 6s ease-in-out infinite; }
.cm-chatbot .cm-chatbot-launcher-mascot :is(.cm-monster-eye, .cm-monster-core),
.cm-chatbot-open .cm-chatbot-head-mascot :is(.cm-monster-eye, .cm-monster-core) { transform: translate(var(--cm-gaze-x), var(--cm-gaze-y)); transition-duration: .14s; }
.cm-chatbot[data-state="hover"] .cm-monster-core { fill: #2563eb; transform: translate(var(--cm-gaze-x), var(--cm-gaze-y)) scale(1.16); }
.cm-chatbot[data-state="hover"] .cm-monster-eye { transform: translate(var(--cm-gaze-x), var(--cm-gaze-y)); }
.cm-chatbot[data-state="hover"] .cm-monster-bars { transform: translateX(-1px); }
.cm-chatbot[data-state="opening"] .cm-monster-bars { transform: translateX(2px); opacity: .62; }
.cm-chatbot[data-state="opening"] .cm-monster-core { transform: scale(1.18); }
.cm-chatbot[data-state="listening"] .cm-monster-eye, .cm-chatbot[data-state="listening"] .cm-monster-core { transform: translateY(1.5px); }
.cm-chatbot-open[data-state="listening"] .cm-chatbot-head-mascot :is(.cm-monster-eye, .cm-monster-core) { transform: translate(var(--cm-gaze-x), calc(1.5px + var(--cm-gaze-y))); }
.cm-chatbot[data-state="searching"] .cm-monster-circuit, .cm-chatbot[data-state="searching"] .cm-monster-node { animation: cm-monster-search .55s ease-in-out infinite alternate; }
.cm-chatbot[data-state="found"] .cm-monster-core { fill: #0f766e; transform: scale(1.22); }
.cm-chatbot[data-state="found"] .cm-monster-node { fill: #2563eb; }
.cm-chatbot[data-state="uncertain"] .cm-monster-eye { transform: rotate(-5deg) translateX(-1px); }
.cm-chatbot[data-state="success"] .cm-monster-core { fill: #0f766e; transform: scale(1.28); }
.cm-chatbot[data-state="success"] .cm-monster-circuit { stroke: #2563eb; }
.cm-chatbot[data-state="closing"] .cm-monster-bars { transform: translateX(0); opacity: 1; }
.cm-chatbot[data-reaction="glance-left"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) :is(.cm-monster-eye, .cm-monster-core) { animation: cm-monster-glance-left 1s ease-in-out both; }
.cm-chatbot[data-reaction="glance-right"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) :is(.cm-monster-eye, .cm-monster-core) { animation: cm-monster-glance-right 1s ease-in-out both; }
.cm-chatbot[data-reaction="glance-up"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) :is(.cm-monster-eye, .cm-monster-core) { animation: cm-monster-glance-up 1s ease-in-out both; }
.cm-chatbot[data-reaction="glance-down"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) :is(.cm-monster-eye, .cm-monster-core) { animation: cm-monster-glance-down 1s ease-in-out both; }
.cm-chatbot[data-reaction="double-blink"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-eye { animation: cm-monster-double-blink 1.1s ease-in-out both; }
.cm-chatbot[data-reaction="core-pulse"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-core { animation: cm-monster-core-pulse 1.05s ease-in-out both; }
.cm-chatbot[data-reaction="circuit-wave"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-circuit { animation: cm-monster-circuit-wave 1.1s ease-in-out both; }
.cm-chatbot[data-reaction="node-twinkle"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-node { animation: cm-monster-node-twinkle .9s ease-in-out both; }
.cm-chatbot[data-reaction="node-twinkle"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-node:nth-child(7) { animation-delay: .12s; }
.cm-chatbot[data-reaction="node-twinkle"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-node:nth-child(8) { animation-delay: .24s; }
.cm-chatbot[data-reaction="bars-shift"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-bars { animation: cm-monster-bars-shift 1.1s ease-in-out both; }
.cm-chatbot[data-reaction="gentle-tilt"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-svg { transform-origin: center; animation: cm-monster-gentle-tilt 1.1s ease-in-out both; }
.cm-chatbot[data-reaction="cage-shake"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) :is(.cm-monster-frame, .cm-monster-bars) { animation: cm-monster-cage-shake .8s ease-in-out both; }
.cm-chatbot[data-reaction="inner-spin"] :is(.cm-chatbot-head-mascot, .cm-chatbot-launcher-mascot) .cm-monster-inner { animation: cm-monster-inner-spin 1.5s cubic-bezier(.5,.05,.35,1) both; }
@keyframes cm-monster-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.012); } }
@keyframes cm-monster-blink { 0%, 89%, 93%, 100% { scale: 1 1; } 91% { scale: 1 .1; } }
@keyframes cm-monster-core-idle { 0%, 100% { opacity: .85; } 50% { opacity: 1; } }
@keyframes cm-monster-search { from { opacity: .55; } to { opacity: 1; } }
@keyframes cm-monster-glance-left { 0%, 100% { transform: translateX(0); } 38%, 62% { transform: translateX(-2px); } }
@keyframes cm-monster-glance-right { 0%, 100% { transform: translateX(0); } 38%, 62% { transform: translateX(2px); } }
@keyframes cm-monster-glance-up { 0%, 100% { transform: translateY(0); } 38%, 62% { transform: translateY(-1.7px); } }
@keyframes cm-monster-glance-down { 0%, 100% { transform: translateY(0); } 38%, 62% { transform: translateY(1.7px); } }
@keyframes cm-monster-double-blink { 0%, 16%, 30%, 46%, 100% { scale: 1 1; } 23%, 39% { scale: 1 .12; } }
@keyframes cm-monster-core-pulse { 0%, 100% { transform: scale(1); fill: #4f46e5; } 48% { transform: scale(1.32); fill: #2563eb; } }
@keyframes cm-monster-circuit-wave { 0%, 100% { stroke: #0f766e; opacity: 1; } 40% { stroke: #2563eb; opacity: .62; } 70% { stroke: #4f46e5; opacity: 1; } }
@keyframes cm-monster-node-twinkle { 0%, 100% { transform: scale(1); fill: #0f766e; } 52% { transform: scale(1.28); fill: #2563eb; } }
@keyframes cm-monster-bars-shift { 0%, 100% { transform: translateX(0); opacity: .42; } 35% { transform: translateX(-1px); opacity: .66; } 68% { transform: translateX(1px); opacity: .58; } }
@keyframes cm-monster-gentle-tilt { 0%, 100% { transform: rotate(0); } 38% { transform: rotate(-1.5deg); } 68% { transform: rotate(1deg); } }
@keyframes cm-monster-cage-shake { 0%, 100% { transform: translateX(0); } 16%, 47% { transform: translateX(-1.2px); } 31%, 63% { transform: translateX(1.2px); } 78% { transform: translateX(-.5px); } }
@keyframes cm-monster-inner-spin { 0% { transform: rotate(0); } 50% { transform: rotate(185deg); } 100% { transform: rotate(360deg); } }

.cm-chatbot-panel {
  position: absolute;
  right: calc(20px + env(safe-area-inset-right));
  bottom: calc(108px + env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  width: min(420px, calc(100vw - 32px));
  height: min(690px, calc(100dvh - 132px));
  min-height: min(440px, calc(100dvh - 132px));
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, .16);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .22);
  pointer-events: auto;
  animation: cm-panel-enter .22s ease-out both;
}
.cm-chatbot-panel[hidden] { display: none !important; }
@keyframes cm-panel-enter { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
.cm-chatbot-head {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex: 0 0 auto;
  min-height: 80px;
  padding: .65rem .9rem;
  border-bottom: 1px solid rgba(15, 23, 42, .1);
  background: linear-gradient(115deg, #edf4ff, #fff 58%, #f1edff);
}
.cm-chatbot-head-mascot { flex: 0 0 57px; width: 57px; height: 57px; }
.cm-chatbot-heading { min-width: 0; flex: 1; }
.cm-chatbot-heading h2 { margin: 0; color: #0f172a; font-size: 1.02rem; font-weight: 850; line-height: 1.25; letter-spacing: -.015em; }
.cm-chatbot-heading p { margin: .14rem 0 0; color: #475569; font-size: .76rem; line-height: 1.3; }
.cm-chatbot-close { flex: 0 0 auto; min-width: 58px; min-height: 44px; padding: .4rem .5rem; border: 1px solid rgba(15, 23, 42, .14); border-radius: 11px; color: #334155; background: #fff; font-size: .78rem !important; font-weight: 750; }
.cm-chatbot-close:hover { background: #f8fafc; }
.cm-chatbot-messages { display: flex; flex: 1 1 auto; flex-direction: column; gap: .9rem; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem; scrollbar-color: #b6c5d9 transparent; }
.cm-chatbot-message { margin: 0; overflow-wrap: anywhere; }
.cm-chatbot-message-bot { align-self: flex-start; width: min(100%, 375px); padding: 1rem; border: 1px solid rgba(15, 23, 42, .11); border-radius: 18px 18px 18px 6px; background: #f8fbff; box-shadow: 0 5px 18px rgba(15, 23, 42, .035); }
.cm-chatbot-type-welcome { background: linear-gradient(145deg, #edf4ff, #fff 58%, #f1edff); }
.cm-chatbot-message-visitor { align-self: flex-end; max-width: 85%; padding: .7rem .95rem; border-radius: 16px 16px 6px 16px; color: #fff; background: #1e3a8a; line-height: 1.5; }
.cm-chatbot-message-bot h3 { margin: 0 0 .52rem; color: #0f172a; font-size: 1.02rem; line-height: 1.32; letter-spacing: -.015em; }
.cm-chatbot-message-bot p { margin: 0 0 .7rem; color: #334155; font-size: .89rem; line-height: 1.55; }
.cm-chatbot-message-bot p:last-child { margin-bottom: 0; }
.cm-chatbot-message-bot .cm-chatbot-question { padding-top: .65rem; border-top: 1px solid rgba(15, 23, 42, .1); color: #0f172a; font-weight: 720; }
.cm-chatbot-message-bot .cm-chatbot-caution { padding: .65rem .75rem; border-left: 3px solid #0f766e; border-radius: 0 8px 8px 0; background: #e9f8f6; }
.cm-chatbot-bullets { display: grid; gap: .45rem; margin: .2rem 0 .8rem; padding-left: 1.2rem; color: #334155; font-size: .87rem; line-height: 1.5; }
.cm-chatbot-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .7rem; }
.cm-chatbot-action { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; max-width: 100%; padding: .45rem .7rem; border: 1px solid #b9cdf2; border-radius: 10px; color: #1e3a8a; background: #fff; font-size: .78rem !important; font-weight: 740; line-height: 1.28; text-align: center; text-decoration: none; }
.cm-chatbot-action:hover { border-color: #2563eb; background: #eaf2ff; }
.cm-chatbot-action-link { color: #fff; border-color: #2563eb; background: #2563eb; }
.cm-chatbot-action-link:hover { color: #fff; background: #1d4ed8; }
.cm-chatbot-form { display: block; flex: 0 0 auto; margin: 0; padding: .72rem .9rem .55rem; border: 0; border-top: 1px solid rgba(15, 23, 42, .1); border-radius: 0; background: #fff; box-shadow: none; }
.cm-chatbot-label { display: block; margin-bottom: .3rem; color: #334155; font-size: .75rem; font-weight: 750; }
.cm-chatbot-field-row { display: flex; align-items: flex-end; gap: .5rem; }
.cm-chatbot-form .cm-chatbot-input { display: block; flex: 1; min-width: 0; min-height: 46px; max-height: 110px; resize: vertical; margin: 0; padding: .6rem .7rem; border: 1px solid #aebbd0; border-radius: 11px; color: #0f172a; background: #fff; font-size: .85rem; line-height: 1.4; }
.cm-chatbot-form .cm-chatbot-input::placeholder { color: #64748b; }
.cm-chatbot-send { flex: 0 0 auto; min-width: 71px; min-height: 46px; padding: .55rem .65rem; border: 0; border-radius: 11px; color: #fff; background: #2563eb; font-size: .82rem !important; font-weight: 790; }
.cm-chatbot-send:hover { background: #1d4ed8; }
.cm-chatbot-send:disabled { opacity: .58; cursor: wait; }
.cm-chatbot-note { flex: 0 0 auto; padding: 0 .9rem .7rem; color: #64748b; background: #fff; font-size: .68rem; line-height: 1.35; }
.cm-chatbot-note a { color: #1d4ed8; text-decoration: underline; text-underline-offset: 2px; }

@media (max-height: 650px) and (min-width: 621px) {
  .cm-chatbot-panel { bottom: 12px; height: calc(100dvh - 24px); min-height: 0; }
  .cm-chatbot-open .cm-chatbot-launcher { display: none; }
}
@media (max-width: 620px) {
  .cm-chatbot-launcher { right: calc(12px + env(safe-area-inset-right)); bottom: calc(12px + env(safe-area-inset-bottom)); width: 68px; height: 68px; border-radius: 21px; }
  .cm-chatbot-launcher-mascot { width: 58px; height: 58px; }
  .cm-chatbot-panel { top: var(--cm-viewport-top, 0px); right: 0; bottom: auto; left: 0; width: 100%; height: var(--cm-viewport-height, 100dvh); min-height: 0; max-height: none; padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); border: 0; border-radius: 0; animation: none; }
  .cm-chatbot-open .cm-chatbot-launcher { display: none; }
  .cm-chatbot-messages { padding: .75rem; }
  .cm-chatbot-message-bot { width: min(100%, 430px); }
}
@media (max-width: 360px) {
  .cm-chatbot-head { gap: .48rem; padding-inline: .65rem; }
  .cm-chatbot-head-mascot { flex-basis: 48px; width: 48px; height: 48px; }
  .cm-chatbot-close { min-width: 52px; }
  .cm-chatbot-messages { padding: .65rem; }
  .cm-chatbot-message-bot { padding: .82rem; }
  .cm-chatbot-form { padding-inline: .65rem; }
  .cm-chatbot-note { padding-inline: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cm-chatbot *, .cm-chatbot *::before, .cm-chatbot *::after { animation: none !important; transition: none !important; }
  .cm-chatbot-panel { animation: none !important; }
}
@media print { .cm-chatbot { display: none !important; } }
