/* =========================================================================
   Matrix Insight — Site Assistant (chat window, bottom-right corner)
   ========================================================================= */
.mi-chat{
  --c-blue:var(--mi-blue,#1268e8);--c-navy:var(--mi-navy,#102a50);
  --c-line:var(--mi-line,#dfe8f4);--c-muted:var(--mi-muted,#5d7394);
  position:fixed;right:20px;bottom:20px;z-index:350;
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  font-family:var(--mi-font-body,system-ui,sans-serif)
}
.mi-chat [hidden]{display:none!important}

/* launcher */
.mi-chat-launch{
  width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;
  background:var(--c-blue);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px rgba(18,104,232,.38);transition:transform .2s ease,background .2s ease
}
.mi-chat-launch:hover{transform:translateY(-2px);background:var(--mi-blue-dark,#0d57c8)}
.mi-chat-launch:focus-visible,.mi-chat button:focus-visible,.mi-chat input:focus-visible,.mi-chat textarea:focus-visible{outline:3px solid #9cc4ff;outline-offset:2px}
.mi-chat.is-open .mi-chat-launch svg{display:none}
.mi-chat.is-open .mi-chat-launch::before{content:"×";font-size:30px;line-height:1}

/* teaser bubble */
.mi-chat-teaser{
  border:1px solid var(--c-line);background:#fff;color:var(--c-navy);font:inherit;font-size:14px;font-weight:600;
  padding:11px 16px;border-radius:14px 14px 4px 14px;cursor:pointer;
  box-shadow:0 10px 26px rgba(16,42,80,.14);animation:miChatPop .35s cubic-bezier(.2,.7,.2,1) both
}

/* panel */
.mi-chat-panel{
  width:min(370px,calc(100vw - 32px));height:min(560px,calc(100vh - 120px));
  background:#fff;border:1px solid var(--c-line);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(16,42,80,.24);
  opacity:0;transform:translateY(14px) scale(.98);transform-origin:bottom right;
  transition:opacity .22s ease,transform .22s ease
}
.mi-chat.is-open .mi-chat-panel{opacity:1;transform:none}

.mi-chat-head{display:flex;align-items:center;gap:11px;padding:14px 16px;background:var(--c-navy);color:#fff}
.mi-chat-avatar{
  flex:0 0 38px;height:38px;border-radius:50%;background:var(--c-blue);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;letter-spacing:.02em
}
.mi-chat-titles{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.mi-chat-titles strong{font-size:15px;color:#fff}
.mi-chat-titles small{font-size:12px;color:#b9cbe0}
.mi-chat-titles small::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#34d399;margin-right:6px;vertical-align:1px}
.mi-chat-close{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:8px}
.mi-chat-close:hover{background:rgba(255,255,255,.12)}

.mi-chat-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#f6f9fd;scroll-behavior:smooth}
.mi-msg{max-width:86%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;animation:miChatPop .25s ease both}
.mi-msg p{margin:0;color:inherit;font-size:inherit}
.mi-msg.is-bot{align-self:flex-start;background:#fff;border:1px solid var(--c-line);color:var(--c-navy);border-bottom-left-radius:4px}
.mi-msg.is-me{align-self:flex-end;background:var(--c-blue);color:#fff;border-bottom-right-radius:4px}
.mi-msg-link{display:inline-block;margin-top:7px;font-weight:700;font-size:13px;color:var(--c-blue);text-decoration:none}
.mi-msg-link:hover{text-decoration:underline}

.mi-msg.is-typing{display:flex;gap:4px;padding:13px 14px}
.mi-msg.is-typing span{width:7px;height:7px;border-radius:50%;background:#9fb3cc;animation:miChatDot 1s infinite ease-in-out}
.mi-msg.is-typing span:nth-child(2){animation-delay:.15s}
.mi-msg.is-typing span:nth-child(3){animation-delay:.3s}

.mi-chat-chips{display:flex;gap:7px;overflow-x:auto;padding:10px 12px;border-top:1px solid var(--c-line);background:#fff;scrollbar-width:none}
.mi-chat-chips::-webkit-scrollbar{display:none}
.mi-chat-chip{
  flex:0 0 auto;border:1px solid var(--c-line);background:#fff;color:var(--c-navy);font:inherit;
  font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;
  transition:border-color .15s,background .15s
}
.mi-chat-chip:hover{border-color:var(--c-blue);background:#eef5ff}
.mi-chat-chip.is-primary{background:var(--c-blue);border-color:var(--c-blue);color:#fff}
.mi-chat-chip.is-primary:hover{background:var(--mi-blue-dark,#0d57c8)}

.mi-chat-input{display:flex;gap:8px;padding:10px 12px;background:#fff;margin:0}
.mi-chat-input input{
  flex:1;min-width:0;border:1px solid var(--c-line);border-radius:11px;padding:10px 12px;font:inherit;font-size:14px;color:var(--c-navy);background:#fff
}
.mi-chat-input button{
  flex:0 0 42px;height:42px;border:0;border-radius:11px;background:var(--c-blue);color:#fff;font-size:16px;cursor:pointer
}
.mi-chat-note{margin:0;padding:0 12px 10px;background:#fff;font-size:11px;color:var(--c-muted);text-align:center}

.mi-chat-leave{display:flex;flex-direction:column;gap:7px;margin-top:9px}
.mi-chat-leave input,.mi-chat-leave textarea{
  width:100%;border:1px solid var(--c-line);border-radius:9px;padding:8px 10px;font:inherit;font-size:13.5px;color:var(--c-navy);resize:vertical;background:#fff
}
.mi-chat-leave button{border:0;border-radius:9px;background:var(--c-blue);color:#fff;font:inherit;font-weight:700;font-size:13.5px;padding:9px;cursor:pointer}
.mi-chat-leave button:disabled{opacity:.6;cursor:wait}
.mi-chat .mi-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

@keyframes miChatPop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes miChatDot{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}

/* Mobile: the open panel fills the width. */
@media (max-width:600px){
  .mi-chat{right:14px;bottom:14px}
  .mi-chat-launch{width:52px;height:52px}
  .mi-chat.is-open{left:10px;right:10px;bottom:10px}
  .mi-chat.is-open .mi-chat-panel{width:100%;height:calc(100vh - 90px);height:calc(100dvh - 90px)}
  .mi-chat.is-open .mi-chat-launch{display:none}
}
@media (prefers-reduced-motion:reduce){
  .mi-chat *{animation:none!important;transition:none!important}
}
@media print{.mi-chat{display:none}}
