/* minusplus.Salma – launcher and frame of the website chat (https://chat.minusplus.company/embed.js).
   The loader injects neutral base styles; these rules give it the minusplus look. "body" raises the
   specificity above the injected rules. Colours: ink #171717, warm white #fff9e3. */
/* The frame container must stack above the sticky site navigation (z-index 100). */
body .lobby-widget-root { z-index: 2147483000; }
body .lobby-widget-bubble { right: 24px; bottom: 24px; border-radius: 9999px; }
body .lobby-widget-bubble:hover { transform: none; }
body .lobby-widget-bubble--labelled .lobby-widget-bubble-label {
  min-height: 44px;
  padding: 0 18px;
  background: #fff9e3;
  color: #171717;
  border: 1px solid rgba(23, 23, 23, 0.2);
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0;
  box-shadow: 0 2px 10px rgba(23, 23, 23, 0.1);
}
body .lobby-widget-bubble-icon {
  width: 52px;
  height: 52px;
  /* The warm white ring keeps the black button visible on dark sections. */
  box-shadow: 0 0 0 2px #fff9e3, 0 4px 14px rgba(23, 23, 23, 0.22);
  transition: background-color 0.18s ease;
}
body .lobby-widget-bubble:hover .lobby-widget-bubble-icon { background-color: #333333 !important; }
body .lobby-widget-bubble:focus-visible {
  outline: 3px solid #171717;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff9e3;
}
/* The loader sizes the frame to its content; the cap keeps the header visible on low screens. */
body .lobby-widget-frame-holder { right: 24px; bottom: 92px; max-height: min(620px, calc(100dvh - 124px)); }
/* While the chat app loads, the holder shows a skeleton of the frame (yellow header, white body). */
body .lobby-widget-frame-holder { border-radius: 16px; background: linear-gradient(#fff9e3 0 64px, #ffffff 64px); }
body .lobby-widget-frame {
  background: transparent;
  border-radius: 16px;
  /* Outline via shadow, not border: the frame reports its inner height to the loader, and a border
     would shrink it on every report. */
  box-shadow: 0 0 0 1px rgba(23, 23, 23, 0.14), 0 18px 48px rgba(23, 23, 23, 0.18);
}
/* The open mobile menu owns the screen: no launcher or chat above it. Keyed to the menu button's state
   as well, so it works with either design.js variant (with or without body.mobile-menu-open). */
body.mobile-menu-open .lobby-widget-bubble,
body.mobile-menu-open .lobby-widget-root,
body:has(#burger[aria-expanded="true"]) .lobby-widget-bubble,
body:has(#burger[aria-expanded="true"]) .lobby-widget-root { visibility: hidden; pointer-events: none; }
/* Room below the footer, so the fixed launcher never covers its last lines. */
body footer::after { content: ""; display: block; grid-column: 1 / -1; height: 64px; }
@media (max-width: 640px) {
  body .lobby-widget-bubble { right: 16px; bottom: 16px; }
  body .lobby-widget-bubble--labelled .lobby-widget-bubble-label { min-height: 40px; padding: 0 14px; font-size: 14px; }
  body .lobby-widget-bubble-icon { width: 48px; height: 48px; }
  body .lobby-widget-frame-holder { left: 12px; right: 12px; width: auto; bottom: 76px; max-height: calc(100dvh - 92px); }
  body footer::after { height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  body .lobby-widget-frame-holder, body .lobby-widget-bubble-icon { transition: none; }
}
