/*
  Çift tıklama koruması (busy.js): gönderen düğme kilitlenir, yazısı saydamlaşır ve ortasında spinner döner. Yazı DOM'da kalır (düğmenin genişliği değişmez,
  ekran okuyucu adını kaybetmez; aria-busy işaretlenir). Spinner düğmenin kendi yazı rengini alır (currentColor): koyu temada ve çerçeveli düğmede de uyar.
  Tema stilleri (:disabled opaklığı) bundan önce yüklenir; bu dosya en sonda.
*/
.is-busy { position: relative; cursor: progress; pointer-events: none; -webkit-text-fill-color: transparent; }
.is-busy:disabled { opacity: 1; cursor: progress; }
.is-busy > * { visibility: hidden; }
.is-busy::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 1.8rem; height: 1.8rem;
  border: .2rem solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: busy-spin .7s linear infinite;
}
@keyframes busy-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .is-busy::after { border-right-color: currentColor; animation: busy-pulse 1.4s ease-in-out infinite; }
  @keyframes busy-pulse { 50% { opacity: .3; } }
}
