/* ============================================================================
   로그인·인증 화면 공통 (2026-10-28)
   - bq-busy.js 가 주입하는 «작업 중» 오버레이 스타일
   - Bootstrap Modal(1055)보다 높은 z-index 로 헤더/모달 위에 표시한다
   ========================================================================== */
.bq-busy {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: none;
}
.bq-busy.is-on { display: block; }

.bq-busy-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 24, 36, .55);
}

.bq-busy-card {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(320px, calc(100vw - 48px));
  padding: 32px 24px 24px;
  text-align: center;
  background: #fff;
  border-radius: var(--phoenix-border-radius-lg, 1rem);
  box-shadow: 0 18px 48px rgba(20, 24, 36, .28);
  font-family: inherit;
}

.bq-busy-ring {
  display: block;
  width: 44px;
  height: 44px;
  margin: 0 auto 16px;
  border-radius: 50%;
  border: 3px solid var(--phoenix-gray-200, #e7eaf3);
  border-top-color: var(--phoenix-primary, #0d6efd);
  animation: bqBusySpin .8s linear infinite;
}

.bq-busy-text {
  margin: 0;
  font-size: var(--phoenix-body-font-size, 1rem);
  font-weight: 600;
  color: var(--phoenix-gray-800, #3e465b);
}

.bq-busy-note {
  margin: 6px 0 0;
  font-size: .82rem;
  color: var(--phoenix-gray-500, #7d8aa2);
}

body.bq-busy-lock { overflow: hidden; }

@keyframes bqBusySpin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .bq-busy-ring {
    animation: none;
    border-top-color: var(--phoenix-primary, #0d6efd);
  }
  .bq-busy-ring::after {
    content: '…';
    display: block;
    color: var(--phoenix-primary, #0d6efd);
    font-size: 22px;
    line-height: 38px;
  }
}
