/* Only the shared floating messenger control. No demo page styles. */
.cm-fab{position:fixed;right:calc(22px + env(safe-area-inset-right,0px));bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:1009;display:flex;flex-direction:row-reverse;align-items:center;gap:10px;isolation:isolate;pointer-events:none}
.cm-fab__main,.cm-fab__tg{display:flex;align-items:center;justify-content:center;width:58px;height:58px;flex:0 0 58px;padding:0;border:0;border-radius:50%;cursor:pointer;pointer-events:auto;text-decoration:none}
.cm-fab__main{position:relative;background:transparent;box-shadow:0 10px 26px #6a4dff57;z-index:2;transition:transform .2s}
.cm-fab__main>svg{display:block;width:100%;height:100%}
.cm-fab__badge{position:absolute;right:-6px;top:-6px;width:30px;height:30px;border-radius:50%;background:#2aabee;box-shadow:0 2px 6px #1b243040;display:flex;align-items:center;justify-content:center;transition:opacity .15s,transform .2s}
.cm-fab__badge svg{width:15px;height:15px}
.cm-fab__badge path,.cm-fab__tg path{fill:#fff;stroke:#fff;stroke-width:2.2;stroke-linejoin:round}
.cm-fab__tg{background:#2aabee;box-shadow:0 8px 20px #2aabee59}
.cm-fab__tg svg{width:27px;height:27px}
.cm-fab__label{height:30px;padding:0 12px;border-radius:9px;background:#1f2124;color:#fff;font-size:12.5px;display:flex;align-items:center;white-space:nowrap}
/* Without JS both destination links remain usable. */
.cm-fab.is-ready .cm-fab__tg{visibility:hidden;opacity:0;pointer-events:none;transform:translateX(60px) scale(.5);transition:transform .22s cubic-bezier(.3,.7,.3,1.2),opacity .18s,visibility .22s}
.cm-fab.is-ready .cm-fab__label{opacity:0;transition:opacity .18s}
.cm-fab.is-open .cm-fab__tg{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.cm-fab.is-open .cm-fab__label{opacity:1}
.cm-fab.is-open .cm-fab__badge{opacity:0;transform:scale(.4)}
.cm-fab.is-open{pointer-events:auto}
.cm-fab a{-webkit-tap-highlight-color:transparent}
.cm-fab a:focus:not(:focus-visible){outline:none}
.cm-fab a:focus-visible{outline:3px solid #2468a8;outline-offset:4px}
.cm-fab .scroll-to-top.cm-fab__top.cmf-top{position:absolute;top:-54px;bottom:auto;left:auto;right:6px;pointer-events:auto}
.cm-fab[hidden]{display:none}
@media(hover:hover){.cm-fab__main:hover{transform:scale(1.04)}}
@media(max-width:1199.98px){
 .cm-fab{right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + max(env(safe-area-inset-bottom,0px),var(--cm-fab-dock-height,0px)));transition:var(--cm-fab-dock-transition,bottom .25s)}
 /* Native height is only a no-JS fallback; JS supplies the measured height. */
 .is-page-sticky .cm-fab{--cm-fab-dock-height:calc(6.5rem + 1px + env(safe-area-inset-bottom,0px))}
 .is-header-sticky .cm-fab{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
 .is-header-sticky-open .cm-fab{bottom:calc(14px + max(env(safe-area-inset-bottom,0px),var(--cm-fab-dock-height,0px)))}
 .cm-fab__label{display:none}
}

@media(prefers-reduced-motion:reduce){.cm-fab *{transition:none!important}}

/* Keep both controls instantaneous together when motion is reduced. */
@media(max-width:1199.98px) and (prefers-reduced-motion:reduce){.cp-header .header__sticky,.cm-fab{transition:none!important}}
