/* =========================================================
   Balances page: lightweight, in-card loading overlay
   Triggered client-side by assets/gb_card_spinner.js
   ========================================================= */

.gb-card-overlay {
  position: absolute;
  inset: 0;
  z-index: 10;

  display: none;

  /* No dim/blur background — balances uses a lightweight spinner only */
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;

  align-items: flex-start;
  justify-content: center;
  padding-top: 14px;

  border-radius: 12px;
}

.gb-card-wrap.gb-card-loading .gb-card-overlay {
  display: flex;
}

.gb-card-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, 0.25);
  border-top-color: rgba(255, 255, 255, 0.95);
  animation: savespan 0.9s linear infinite;
}

/* =========================================================
   Balances: refresh overlay (blur) limited to cards area
   Activated only when the user presses the Refresh button.
   ========================================================= */

.gb-refresh-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;

  /* Always visible regardless of scroll position */
  align-items: center;
  justify-content: center;
  padding-top: 0;

  /* Soft blur over the whole viewport while actions run */
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  /* Fullscreen overlay: no rounded corners */
  border-radius: 0;
}


#gb-body-wrap.gb-refresh-loading .gb-refresh-overlay {
  display: flex;
}

/* =========================================================
   Balances: + button turns into a spinner while loading
   ========================================================= */

.gb-btn-loading {
  position: relative;
}

.gb-btn-loading i {
  opacity: 0;
}

.gb-btn-loading::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 20px;
  margin-left: -10px;
  margin-top: -10px;
  border-radius: 50%;
  border: 3px solid currentColor;
  border-top-color: transparent;
  border-right-color: transparent;
  animation: savespan 0.9s linear infinite;
}