/* Generated by tools/build.js from web-shared/busy.css. Edit the source, not this copy. */
/* Busy indicator (web-shared/busy.css, copied into each page's css/ by tools/build.js – edit the source). */
.hd-busy { position: fixed; top: calc(10px + env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); z-index: 90;
  display: flex; align-items: center; gap: 10px; padding: 6px 16px 6px 6px; border-radius: 99px;
  background: #ffffff; color: #24492f; border: 1px solid #e4dccb; box-shadow: 0 6px 22px rgba(35, 39, 31, .18);
  font: 700 .95rem/1.2 "Plus Jakarta Sans", "Noto Sans Tamil", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; pointer-events: none; }
.hd-busy[hidden] { display: none; }
.hd-busy-ring { position: relative; width: 40px; height: 40px; display: grid; place-items: center; flex: none; }
.hd-busy-ring img { width: 28px; height: 28px; border-radius: 50%; background: #fff; animation: hd-busy-breathe 1.6s ease-in-out infinite; }
.hd-busy-ring::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 3px solid #e3ecdf; border-top-color: #24492f; border-right-color: #c8893b;
  animation: hd-busy-spin .9s linear infinite; }
@keyframes hd-busy-spin { to { transform: rotate(360deg); } }
@keyframes hd-busy-breathe { 50% { transform: scale(.9); } }
@media (prefers-reduced-motion: reduce) {
  .hd-busy-ring::before { animation: hd-busy-pulse 1.6s ease-in-out infinite; border-color: #24492f; }
  .hd-busy-ring img { animation: none; }
  @keyframes hd-busy-pulse { 50% { opacity: .35; } }
}
