/*--- Static copy of the rules HHPS_Loading_Backdrop.js injects at runtime. Pages under the strict
      CSP (pre-login views) cannot run that injected <style> (no nonce), so they link this file with
      id="lb-styles" - the script then skips its injection. Keep both in step. */
.lb-backdrop {
  position: fixed; inset: 0; z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(255,255,255,0.94), rgba(240,253,244,0.94));
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  cursor: wait;
  animation: lb-fade .18s ease-out;
}
.lb-card {
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  padding: 26px 36px; border-radius: 14px; background: #fff;
  box-shadow: 0 14px 36px rgba(22,177,76,0.18);
  font-family: Arial, sans-serif; min-width: 240px; max-width: 90vw;
}
.lb-logo { width: 56px; height: 56px; opacity: .95; }
.lb-spinner {
  width: 36px; height: 36px; border-radius: 50%;
  border: 3px solid #e6f4ec; border-top-color: #16b14c;
  animation: lb-spin .85s linear infinite;
}
.lb-title { font-size: 15px; font-weight: 700; color: #16b14c; letter-spacing: .02em; }
.lb-sub   { font-size: 12px; color: #6c7a89; text-align: center; }
.lb-progress { width: 100%; height: 3px; background: #eef1f4; border-radius: 2px; overflow: hidden; }
.lb-progress::after {
  content: ""; display: block; height: 100%; width: 30%;
  background: linear-gradient(90deg, #16b14c, #2bd070, #16b14c);
  animation: lb-bar 1.1s ease-in-out infinite;
}
@keyframes lb-spin { to { transform: rotate(360deg); } }
@keyframes lb-bar  { 0% { transform: translateX(-100%); } 100% { transform: translateX(366%); } }
@keyframes lb-fade { from { opacity: 0; } to { opacity: 1; } }
