.nomma-loading-rail {
  position: fixed; inset: 0 0 auto; height: 3px; z-index: 10000;
  overflow: hidden; pointer-events: none; opacity: 0;
  background: #d8cbbb; transition: opacity 150ms ease-out;
}
.nomma-loading-rail::after {
  content: ''; display: block; width: 35%; height: 100%; background: #435047;
  transform: translateX(-100%);
}
.nomma-is-loading .nomma-loading-rail { opacity: 1; }
.nomma-is-loading .nomma-loading-rail::after { animation: nomma-loading-travel 1.4s linear infinite; }
.nomma-loading-status {
  position: fixed; z-index: 10001; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  display: flex; align-items: center; gap: 12px; width: max-content;
  max-width: min(380px, calc(100% - 32px)); box-sizing: border-box;
  padding: 14px 18px; border: 1px solid #d8cbbb; border-radius: 6px;
  background: #f4efe6; color: #435047; box-shadow: 0 6px 24px rgb(17 19 17 / 10%);
  font: 500 13px/1.5 Manrope, Arial, sans-serif; letter-spacing: 0;
  pointer-events: none; overflow-wrap: break-word;
  animation: nomma-loading-appear 180ms ease-out both;
}
.nomma-loading-status[hidden] { display: none !important; }
.nomma-loading-status::before, .nomma-control-loading::after, .nomma-inline-loading::before {
  content: ''; box-sizing: border-box; width: 16px; height: 16px; flex: 0 0 16px;
  border: 1.5px solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: nomma-loading-turn 900ms linear infinite;
}
.nomma-control-loading {
  position: relative !important; cursor: progress !important; pointer-events: none;
  color: transparent !important; text-shadow: none !important;
}
/* Conceal, do not replace, content: native names, values and geometry remain intact. */
.nomma-control-loading > *, .nomma-control-loading::before { opacity: 0; }
.nomma-control-loading::after {
  position: absolute; left: calc(50% - 8px); top: calc(50% - 8px);
  color: var(--nomma-loading-ink, #435047);
}
button.nomma-control-loading, a.nomma-control-loading { opacity: .8; }
.nomma-inline-loading { display: flex; align-items: center; justify-content: center; gap: 12px; }
.nomma-motion-paused .nomma-loading-rail::after,
.nomma-motion-paused .nomma-loading-status::before,
.nomma-motion-paused .nomma-control-loading::after,
.nomma-motion-paused .nomma-inline-loading::before { animation-play-state: paused; }
@keyframes nomma-loading-turn { to { transform: rotate(360deg); } }
@keyframes nomma-loading-travel { to { transform: translateX(385%); } }
@keyframes nomma-loading-appear { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 767px) {
  .nomma-loading-status { right: 16px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); }
  .nomma-admin-page .nomma-loading-status { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  .nomma-loading-rail { transition: none; }
  .nomma-loading-rail::after, .nomma-loading-status, .nomma-loading-status::before,
  .nomma-control-loading::after, .nomma-inline-loading::before { animation: none !important; }
  .nomma-is-loading .nomma-loading-rail::after { width: 100%; transform: none; }
}
