/* SendOTP — tema biru & putih ala OTPStore: latar putih kebiruan,
   aksen biru #1F7AFF, teks navy #0F1B2D, hijau khusus total harga.
   Tipografi Inter (judul & isi) / JetBrains Mono (kode & nomor).
   Di atas Tailwind CDN. */
html {
  scroll-behavior: smooth;
}
/* Jangan biarkan satu elemen lebar (mis. <select> berisi teks panjang)
   menyeret seluruh halaman melebar di HP. */
html,
body {
  overflow-x: clip;
}
body {
  background-color: #f8faff;
}
h1,
h2,
h3 {
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
}
select,
input,
textarea {
  max-width: 100%;
}
::selection {
  background: #bfdbfe;
  color: #0f1b2d;
}
/* Scrollbar ramping netral */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: #eef2f7;
}
::-webkit-scrollbar-thumb {
  background: #c3d2e6;
  border-radius: 8px;
  border: 2px solid #eef2f7;
}
::-webkit-scrollbar-thumb:hover {
  background: #9db6d6;
}
/* Bayangan lembut netral untuk kartu (menimpa shadow bawaan Tailwind) */
.shadow-sm {
  box-shadow: 0 2px 10px rgba(15, 27, 45, 0.06), 0 1px 3px rgba(15, 27, 45, 0.05) !important;
}
.shadow-lg {
  box-shadow: 0 20px 42px -14px rgba(15, 27, 45, 0.18) !important;
}
.shadow-xl {
  box-shadow: 0 22px 48px -12px rgba(15, 27, 45, 0.25) !important;
}
.spinner {
  width: 18px;
  height: 18px;
  border-radius: 9999px;
  border: 3px solid #dbeafe;
  border-top-color: #1f7aff;
  animation: otp-spin 0.8s linear infinite;
  display: inline-block;
  vertical-align: -3px;
}
@keyframes otp-spin {
  to {
    transform: rotate(360deg);
  }
}
.pulse-dot {
  animation: otp-pulse 1.4s ease-in-out infinite;
}
@keyframes otp-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
/* Kotak digit OTP dekoratif */
.otp-digit {
  width: 2.75rem;
  height: 3.5rem;
  display: grid;
  place-items: center;
  border: 2px solid #bfdbfe;
  border-radius: 1rem;
  background: #ffffff;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 1.5rem;
  font-weight: 700;
  color: #334155;
}
.otp-digit.filled {
  border-color: #1f7aff;
  color: #2563eb;
  background: #eff6ff;
  box-shadow: 0 0 0 3px rgba(31, 122, 255, 0.14);
}
@media (max-width: 380px) {
  .otp-digit {
    width: 2.35rem;
    height: 3rem;
    font-size: 1.25rem;
  }
}
/* Sorotan order yang baru dibuat / dibuka dari tautan */
.order-highlight {
  animation: otp-order-flash 1.2s ease-in-out 2;
}
@keyframes otp-order-flash {
  0%,
  100% {
    box-shadow: inset 0 0 0 0 rgba(31, 122, 255, 0);
  }
  50% {
    box-shadow: inset 0 0 0 3px rgba(31, 122, 255, 0.75);
  }
}
/* QR dinamis top-up (SVG hasil qrcode-generator) */
#qris-qr svg {
  width: 100%;
  height: auto;
  display: block;
}
