
/* =========================================================
   CHATBOT WIDGET
   ========================================================= */
.sm-chat-fab{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:var(--sm-orange);box-shadow:0 10px 28px rgba(255,90,31,.4);display:flex;align-items:center;justify-content:center;z-index:800;transition:transform .2s ease,background .2s ease;}
.sm-chat-fab:hover{background:var(--sm-orange-dark);transform:scale(1.06);}
.sm-chat-fab svg{width:26px;height:26px;color:#fff;}
.sm-chat-fab .sm-chat-fab-close{display:none;}
.sm-chat-fab.sm-open .sm-chat-fab-chat{display:none;}
.sm-chat-fab.sm-open .sm-chat-fab-close{display:block;}

.sm-chat-panel{position:fixed;bottom:98px;right:24px;width:380px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 140px);background:#fff;border-radius:20px;box-shadow:0 30px 70px rgba(18,35,61,.28);z-index:800;display:flex;flex-direction:column;overflow:hidden;visibility:hidden;opacity:0;transform:translateY(16px) scale(.97);transition:visibility 0s linear .25s,opacity .25s ease,transform .25s cubic-bezier(.16,1,.3,1);}
.sm-chat-panel.sm-open{visibility:visible;opacity:1;transform:translateY(0) scale(1);transition-delay:0s;}

.sm-chat-header{background:var(--sm-navy);padding:18px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0;}
.sm-chat-avatar{width:38px;height:38px;border-radius:50%;background:var(--sm-orange);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sm-chat-avatar svg{width:18px;height:18px;color:#fff;}
.sm-chat-header-info .sm-chat-name{font-family:var(--sm-font);font-weight:800;font-size:14.5px;color:#fff;}
.sm-chat-header-info .sm-chat-status{font-size:11.5px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:6px;}
.sm-chat-status-dot{width:6px;height:6px;border-radius:50%;background:var(--sm-green);}

.sm-chat-messages{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:12px;background:var(--sm-paper);}
.sm-chat-msg{max-width:82%;padding:11px 15px;border-radius:14px;font-size:13.5px;line-height:1.5;}
.sm-chat-msg-bot{align-self:flex-start;background:#fff;color:var(--sm-ink);border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(18,35,61,.06);}
.sm-chat-msg-user{align-self:flex-end;background:var(--sm-navy);color:#fff;border-bottom-right-radius:4px;}
.sm-chat-typing{align-self:flex-start;background:#fff;padding:13px 16px;border-radius:14px;border-bottom-left-radius:4px;display:flex;gap:4px;}
.sm-chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--sm-granite-light);animation:sm-chat-bounce 1.2s ease infinite;}
.sm-chat-typing span:nth-child(2){animation-delay:.15s;}
.sm-chat-typing span:nth-child(3){animation-delay:.3s;}
@keyframes sm-chat-bounce{0%,60%,100%{transform:translateY(0);opacity:.4;}30%{transform:translateY(-4px);opacity:1;}}

.sm-chat-input-row{display:flex;gap:10px;padding:14px;border-top:1px solid var(--sm-border);flex-shrink:0;background:#fff;}
.sm-chat-input-row textarea{flex:1;resize:none;border:1.5px solid var(--sm-border);border-radius:12px;padding:11px 14px;font-family:var(--sm-font);font-size:13.5px;color:var(--sm-ink);max-height:80px;}
.sm-chat-send{width:40px;height:40px;border-radius:50%;background:var(--sm-orange);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .18s ease;}
.sm-chat-send:hover{background:var(--sm-orange-dark);}
.sm-chat-send svg{width:16px;height:16px;color:#fff;}
.sm-chat-send:disabled{opacity:.5;cursor:not-allowed;}

@media(max-width:600px){
  .sm-chat-panel{right:16px;bottom:88px;width:calc(100vw - 32px);height:calc(100vh - 160px);}
  .sm-chat-fab{right:16px;bottom:16px;}
}
@media(prefers-reduced-motion:reduce){
  .sm-chat-typing span{animation:none;}
}

/* fix: the site's base button reset (background:none on any non-.sm-btn button)
   was beating these components' own background due to higher specificity */
.sm-theme .sm-chat-fab{background:var(--sm-orange) !important;}
.sm-theme .sm-chat-fab:hover{background:var(--sm-orange-dark) !important;}
.sm-theme .sm-chat-send{background:var(--sm-orange) !important;}
.sm-theme .sm-chat-send:hover{background:var(--sm-orange-dark) !important;}
.sm-theme .sm-chat-avatar{background:var(--sm-orange) !important;}
