/* ── Global loading spinner ─────────────────────────────────────────
   Reusable inline spinner injected by no-double-submit.js into a
   submit button while a form is in flight (see disableButton). Small,
   inherits the button's text colour, mobile-friendly.

   Kept in its own tiny stylesheet (rather than app.css) so the standalone
   task pages (task_detail.html, edit_task.html) — which do NOT load the
   full app.css — can pick up the spinner without inheriting the rest of
   the global styles. base.html links this alongside app.css. */
.vr-spinner {
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-right: 0.45em;
  vertical-align: -0.12em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: vr-spin 0.6s linear infinite;
}
@keyframes vr-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .vr-spinner { animation-duration: 1.4s; }
}
