
        @keyframes chatPulse { 0%{transform:scale(1);opacity:.7;} 70%,100%{transform:scale(1.5);opacity:0;} }
        @keyframes chatSlideUp { from{opacity:0;transform:translateY(20px) scale(.97);} to{opacity:1;transform:translateY(0) scale(1);} }
        @keyframes chatModalIn { from{opacity:0;transform:translate(-50%,-46%) scale(.94);} to{opacity:1;transform:translate(-50%,-50%) scale(1);} }
        @keyframes chatBottomSheetIn { from{transform:translateY(100%);} to{transform:translateY(0);} }
        @keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
        @keyframes dot { 0%,60%,100%{transform:translateY(0);} 30%{transform:translateY(-6px);} }
        @keyframes spin { to{transform:rotate(360deg);} }
        @keyframes chatStatusPulse {
          0%, 100% { box-shadow: 0 0 4px currentColor; opacity: 1; }
          50%      { box-shadow: 0 0 10px currentColor; opacity: 0.75; }
        }
        @keyframes chatVoicePulse {
          0%, 100% { box-shadow: 0 0 0 0   rgba(239,68,68,0.45), inset 0 1px 0 rgba(255,255,255,0.10); }
          50%      { box-shadow: 0 0 0 8px rgba(239,68,68,0.05), inset 0 1px 0 rgba(255,255,255,0.10); }
        }
        /* Hover micro-interactions for the round header buttons */
        button.chat-circle-btn:not(:disabled):hover { transform: scale(1.06); }
        button.chat-circle-btn:not(:disabled):active { transform: scale(0.94); }
        @media (prefers-reduced-motion: reduce) {
          @keyframes chatStatusPulse { from, to { box-shadow: 0 0 4px currentColor; } }
          @keyframes chatVoicePulse  { from, to { box-shadow: inset 0 1px 0 rgba(255,255,255,0.10); } }
          button.chat-circle-btn:not(:disabled):hover,
          button.chat-circle-btn:not(:disabled):active { transform: none; }
        }
      