/* ===== Question Bank popups (SweetAlert2) =====
     Class names are prefixed with "qb-swal-" and colors are written out
     so nothing here can clash with your site's existing CSS variables. */
  .qb-swal-popup {
    width: min(440px, calc(100% - 32px)) !important;
    padding: 32px 28px 26px !important;
    border-radius: 18px !important;
    font-family: 'Montserrat', sans-serif !important;
    box-shadow: 0 24px 60px -20px rgba(0, 27, 58, 0.45),
                0 2px 6px rgba(0, 27, 58, 0.08) !important;
  }

  .qb-swal-popup.swal2-show {
    animation: qb-swal-in 0.32s cubic-bezier(0.16, 1, 0.3, 1) !important;
  }

  .qb-swal-popup.swal2-hide {
    animation: qb-swal-out 0.16s ease-in forwards !important;
  }

  @keyframes qb-swal-in {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to   { opacity: 1; transform: none; }
  }

  @keyframes qb-swal-out {
    to { opacity: 0; transform: translateY(6px) scale(0.98); }
  }

  .qb-swal-popup .swal2-icon {
    margin: 4px auto 0 !important;
  }

  .qb-swal-title {
    padding: 0 !important;
    margin: 20px 0 0 !important;
    color: #001B3A !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.01em;
    text-wrap: balance;
  }

  .qb-swal-content {
    margin: 10px 0 0 !important;
    padding: 0 !important;
    color: #4a5a70 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
    text-wrap: pretty;
  }

  .qb-swal-actions {
    gap: 10px;
    width: 100%;
    margin: 26px auto 0 !important;
  }

  .qb-swal-button {
    min-height: 44px !important;
    margin: 0 !important;
    padding: 12px 20px !important;
    border: none !important;
    border-radius: 10px !important;
    background: #002D62 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease !important;
  }

  .qb-swal-button:hover {
    background: #001B3A !important;
  }

  .qb-swal-button:active {
    transform: translateY(1px);
  }

  .qb-swal-button:focus-visible {
    outline: 2px solid rgba(0, 45, 98, 0.45) !important;
    outline-offset: 3px;
  }

  .qb-swal-button.qb-swal-deny {
    background: #ffffff !important;
    color: #002D62 !important;
    box-shadow: inset 0 0 0 1.5px #002D62 !important;
  }

  .qb-swal-button.qb-swal-deny:hover {
    background: #eef3f9 !important;
  }

  .qb-swal-button.qb-swal-cancel {
    background: transparent !important;
    color: #4a5a70 !important;
    box-shadow: none !important;
  }

  .qb-swal-button.qb-swal-cancel:hover {
    background: #f1f4f8 !important;
    color: #002D62 !important;
  }

  .qb-swal-actions-stacked {
    flex-direction: column;
    align-items: stretch;
    max-width: 300px;
  }

  .qb-swal-actions-stacked .qb-swal-button {
    width: 100%;
  }

  .swal2-icon.swal2-warning {
    color: #fca21c !important;
    border-color: #ffb547 !important;
  }

  .swal2-container {
    padding: 16px !important;
  }

  .swal2-container.swal2-backdrop-show {
    background: rgba(0, 27, 58, 0.55) !important;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  @media (max-width: 560px) {
    .qb-swal-popup { padding: 28px 20px 22px !important; }
    .qb-swal-actions:not(.qb-swal-actions-stacked) .qb-swal-button { flex: 1 1 auto; }
  }

  @media (prefers-reduced-motion: reduce) {
    .qb-swal-popup.swal2-show,
    .qb-swal-popup.swal2-hide {
      animation: none !important;
    }
  }
