/* Only the owned widget host and its public CSS parts are affected. No site-wide selectors. */
#bibap-widget-host[data-bibap-joomla-owner] { bottom: var(--bibap-j-y, 20px); }
#bibap-widget-host[data-bibap-joomla-owner][data-bibap-side="right"] { right: var(--bibap-j-x, 20px); left: auto; }
#bibap-widget-host[data-bibap-joomla-owner][data-bibap-side="left"] { left: var(--bibap-j-x, 20px); right: auto; }
#bibap-widget-host[data-bibap-joomla-owner]::part(panel) {
  width: min(var(--bibap-j-width, 390px), calc(100vw - var(--bibap-j-x, 20px) - var(--bibap-j-x, 20px)));
  height: min(var(--bibap-j-height, 680px), calc(100dvh - var(--bibap-j-y, 20px) - 84px));
  max-height: calc(100vh - var(--bibap-j-y, 20px) - 84px);
  border-radius: var(--bibap-j-radius, 24px);
}
#bibap-widget-host[data-bibap-joomla-owner][data-bibap-hidden] { display: none !important; }
@media (max-width: 560px) {
  /* Match the upstream loader's mobile layout breakpoint, independently of device visibility. */
  #bibap-widget-host[data-bibap-joomla-owner] { bottom: max(var(--bibap-j-mobile-bottom, 12px), env(safe-area-inset-bottom)); }
  #bibap-widget-host[data-bibap-joomla-owner]::part(panel) {
    width: auto; height: auto; max-height: none;
    bottom: calc(max(var(--bibap-j-mobile-bottom, 12px), env(safe-area-inset-bottom)) + 64px);
  }
  #bibap-widget-host[data-bibap-joomla-owner][data-bibap-side="left"]::part(launcher) { margin-left: 0; margin-right: auto; }
  #bibap-widget-host[data-bibap-joomla-owner][data-bibap-side="right"]::part(launcher) { margin-left: auto; margin-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #bibap-widget-host[data-bibap-joomla-owner]::part(panel) { transition: none; }
}
