.ms-sa-panel {
  position: fixed;
  right: 0;
  bottom: 1.25rem;
  z-index: 1040;
  display: flex;
  align-items: flex-end;
  font-family: inherit;
  color: var(--fd-text, #222);
}

.ms-sa-panel[hidden] {
  display: none !important;
}

.ms-sa-panel__tab {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  border: 1px solid var(--fd-border, #d7dee8);
  border-right: 0;
  border-radius: 0.5rem 0 0 0.5rem;
  background: var(--fd-card, #f8fbff);
  color: var(--fd-text, #222);
  padding: 0.75rem 0.4rem;
  cursor: pointer;
  min-height: 7rem;
}

.ms-sa-panel__sheet {
  width: min(22rem, calc(100vw - 2.5rem));
  background: var(--fd-card, #f8fbff);
  border: 1px solid var(--fd-border, #d7dee8);
  border-right: 0;
  border-radius: 0.75rem 0 0 0.75rem;
  box-shadow: -8px 8px 24px rgba(0, 0, 0, 0.12);
  padding: 1rem 1.25rem 1rem 1rem;
  transform: translateX(100%);
  transition: transform 0.25s ease;
}

.ms-sa-panel.is-open .ms-sa-panel__sheet {
  transform: translateX(0);
}

.ms-sa-panel:not(.is-open) .ms-sa-panel__sheet {
  position: absolute;
  pointer-events: none;
}

.ms-sa-panel__close {
  float: right;
  border: 0;
  background: transparent;
  color: var(--fd-text-soft, #555);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}

.ms-sa-offer {
  background: var(--fd-card, #f8fbff);
  border: 1px solid var(--fd-border, #d7dee8);
  border-left: 4px solid var(--fd-accent, #007bff);
  color: var(--fd-text-soft, inherit);
  padding: 0.85rem 1rem;
  margin: 0 0 1rem;
}

.ms-sa-offer > .title {
  margin: 0 0 0.4rem;
  font-size: 1rem;
  color: var(--fd-text, inherit);
}

.ms-sa-offer > .hint,
.ms-sa-offer__text {
  margin: 0;
}

.ms-sa--cart .ms-sa-offer,
.ms-sa--checkout .ms-sa-offer {
  margin-top: 0.75rem;
}

body.ms-sa-has-cart-offer .ms-sa-panel {
  display: none !important;
}

@media (max-width: 767px) {
  .ms-sa-panel {
    bottom: calc(var(--ms-sa-mobile-nav-offset, 0px) + 0.5rem);
    align-items: stretch;
  }

  .ms-sa-panel:not(.is-open) {
    width: auto;
  }

  .ms-sa-panel__tab {
    min-height: 5.5rem;
    padding: 0.5rem 0.28rem;
    font-size: 0.75rem;
  }

  .ms-sa-panel.is-open .ms-sa-panel__tab {
    display: none;
  }

  .ms-sa-panel__sheet {
    width: min(18rem, calc(100vw - 2rem));
  }
}
