.pixel-b2b-modal { 
  position: fixed; inset: 0; display: none; z-index: 10000;
}
.pixel-b2b-modal[aria-hidden="false"] { display: block; }
.pixel-b2b-modal__backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,.45);
}
.pixel-b2b-modal__dialog {
  position: relative; margin: 5vh auto; max-width: 520px; background: #fff;
  border-radius: 8px; padding: 24px; box-shadow: 0 10px 30px rgba(0,0,0,.2);
}
.pixel-b2b-modal__close {
  position: absolute; right: 8px; top: 8px; background: transparent; border: 0; font-size: 22px; cursor: pointer;
}
.pixel-b2b-form__group { margin-bottom: 14px; }
.pixel-b2b-form__group label { display: block; margin-bottom: 6px; font-weight: 600; }
.pixel-b2b-form__group input {
  width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 6px;
}
.pixel-b2b-form__actions { display: flex; gap: 10px; margin-top: 12px; }
.pixel-b2b-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 14px; border: 1px solid #ddd; border-radius: 6px; text-decoration: none; cursor: pointer; }
.pixel-b2b-btn--primary { background: #222; color: #fff; border-color: #222; }
html.pixel-b2b-modal-open { overflow: hidden; }


/* Shake animation */
@keyframes shake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(4px); }
  30%, 50%, 70% { transform: translateX(-8px); }
  40%, 60% { transform: translateX(8px); }
}

.pixel-b2b-modal .form-error {
  border-color: #dc3545 !important; /* bootstrap red */
}

.pixel-b2b-modal .form-error-animate {
  animation: shake 0.5s;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.pixel-b2b-modal .form-loading::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 8px;
  border: 2px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}