.app-footer{
  --bs-bg-opacity: .08;
}

.app-footer-inner{
  font-size: min(max(14px, 1.5vw), 16px);
}

.app-footer-brand{
  font-size: min(max(14px, 1.5vw), 18px);
}

.app-footer-brand span{
  color:#22304a;
}

.app-footer-logo{
  width:48px;
  opacity:.72;
}

#loading-overlay{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.62);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  z-index:99999;
  touch-action:none;
}

.loading-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.9rem;
  padding:1.35rem 1.4rem;
  min-width:150px;
  border-radius:1.2rem;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(39,69,143,.10);
  box-shadow:0 14px 36px rgba(31,42,55,.16);
}

.loading-logo{
  width:72px;
  height:72px;
  object-fit:contain;
  display:block;
  user-select:none;
  pointer-events:none;
}

.loading-spinner{
  width:42px;
  height:42px;
  border:4px solid #dbe4f3;
  border-top-color:#3559b7;
  border-radius:50%;
  animation:loading-spin .8s linear infinite;
}

.loading-text{
  font-size:.95rem;
  font-weight:700;
  color:#27458f;
  letter-spacing:.02em;
}

@keyframes loading-spin{
  to{ transform:rotate(360deg); }
}
