/* EzCheckout full-screen payment page (web/ez_checkout.js). System fonts only: nothing extra to download. */
.ezc-page { position: fixed; inset: 0; z-index: 2147483000; background: #f3f5f9; display: flex; flex-direction: column;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif; color: #111827;
  animation: ezc-in .18s ease-out; }
@media (min-width: 600px) { .ezc-page { left: 50%; width: 480px; transform: translateX(-50%); box-shadow: 0 0 0 100vmax rgba(15, 23, 42, .55); animation: none; } }
.ezc-bar { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #fff;
  border-bottom: 1px solid #e5e7eb; }
.ezc-icon { border: 0; background: none; font-size: 24px; line-height: 1; width: 40px; height: 40px; border-radius: 50%;
  cursor: pointer; color: #111827; }
.ezc-titles { flex: 1; min-width: 0; }
.ezc-title { font-size: 17px; font-weight: 700; }
.ezc-sub { font-size: 13px; color: #6b7280; margin-top: 2px; }
.ezc-lang { border: 1px solid #d1d5db; border-radius: 8px; background: #fff; font-size: 14px; padding: 6px 8px; color: #111827; }
.ezc-body { flex: 1; overflow-y: auto; padding: 12px 12px 8px; -webkit-overflow-scrolling: touch; }
.ezc-card { background: #fff; border-radius: 16px; padding: 6px 14px 10px; margin-bottom: 12px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .06); }
.ezc-label { font-size: 13px; font-weight: 700; color: #6b7280; margin: 12px 0 4px; letter-spacing: .02em; }
.ezc-row { width: 100%; display: flex; align-items: center; gap: 14px; padding: 13px 2px; border: 0;
  border-bottom: 1px solid #f1f2f4; background: none; font-size: 16px; font-weight: 600; color: #111827;
  cursor: pointer; text-align: left; }
.ezc-card .ezc-row:last-child { border-bottom: 0; }
.ezc-row:active { background: #f8fafc; }
.ezc-name { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.ezc-small { font-size: 12px; font-weight: 500; color: #6b7280; }
.ezc-logo { width: 32px; height: 32px; object-fit: contain; flex: none; }
.ezc-radio { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #cbd5e1; flex: none; box-sizing: border-box; }
.ezc-sel .ezc-radio { border: 6px solid #0b53a0; }
.ezc-sel { color: #0b53a0; }
.ezc-chev { font-size: 22px; color: #9ca3af; }
.ezc-chip { font-size: 11px; font-weight: 700; color: #15803d; background: #dcfce7; padding: 3px 8px; border-radius: 999px; }
.ezc-link .ezc-name { color: #0b53a0; }
.ezc-banks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 6px 0 4px; }
.ezc-bank-tile { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 4px;
  border: 1.5px solid #e5e7eb; border-radius: 12px; background: #fff; cursor: pointer; font-size: 13px;
  font-weight: 600; color: #374151; }
.ezc-bank-tile.ezc-sel { border-color: #0b53a0; background: #eff6ff; }
.ezc-bank { width: 34px; height: 34px; border-radius: 50%; background: #e0ecfa; color: #0b53a0; font-weight: 800;
  font-size: 12px; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ezc-bank-img { background: #fff; border: 1px solid #f1f2f4; }
.ezc-bank img { width: 70%; height: 70%; object-fit: contain; }
.ezc-back { border: 0; background: none; color: #0b53a0; font-size: 15px; font-weight: 600; padding: 12px 0 8px; cursor: pointer; }
.ezc-search { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid #d1d5db; border-radius: 12px;
  font-size: 16px; margin-bottom: 4px; }
.ezc-list { max-height: 60vh; overflow-y: auto; }
.ezc-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; border-radius: 14px; padding: 12px 14px;
  margin-bottom: 12px; font-size: 14px; line-height: 1.45; }
.ezc-muted { color: #6b7280; font-size: 14px; line-height: 1.5; text-align: center; padding: 10px 6px; }
.ezc-cta { background: #fff; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid #e5e7eb;
  box-shadow: 0 -4px 16px rgba(16, 24, 40, .06); }
.ezc-pay { width: 100%; padding: 15px; border: 0; border-radius: 12px; background: #16a34a; color: #fff;
  font-size: 17px; font-weight: 700; cursor: pointer; }
.ezc-pay:disabled { background: #9ca3af; cursor: default; }
.ezc-pay:active { transform: scale(.99); }
.ezc-secure { text-align: center; font-size: 12px; color: #6b7280; margin-top: 8px; }
.ezc-wait { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 48px 16px 16px; text-align: center; }
.ezc-wait .ezc-logo { width: 64px; height: 64px; }
.ezc-wait-title { font-size: 19px; font-weight: 700; }
.ezc-wait-amt { font-size: 26px; font-weight: 800; }
.ezc-ghost { margin-top: 12px; padding: 12px 20px; border-radius: 12px; border: 1px solid #d1d5db; background: #fff;
  font-size: 15px; font-weight: 600; color: #374151; cursor: pointer; }
.ezc-spin { width: 30px; height: 30px; border: 3px solid #e5e7eb; border-top-color: #0b53a0; border-radius: 50%;
  animation: ezc-rot .8s linear infinite; }
.ezc-tick { width: 72px; height: 72px; border-radius: 50%; background: #16a34a; color: #fff; font-size: 40px;
  display: flex; align-items: center; justify-content: center; }
@keyframes ezc-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes ezc-rot { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ezc-page, .ezc-spin { animation: none; } }
