/* ══ PAYMENT UPDATE MODAL ═══════════════════════════════════════════ */
.pm-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.pm-modal[hidden]{display:none}
.pm-modal-backdrop{position:absolute;inset:0;background:rgba(13,17,36,.55);backdrop-filter:blur(2px)}
.pm-modal-card{position:relative;width:100%;max-width:520px;background:#fff;border-radius:14px;box-shadow:0 24px 64px rgba(13,17,36,.4);overflow:hidden;animation:pmIn .18s ease-out both}
@keyframes pmIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

.pm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:linear-gradient(135deg,#0d1124,#1a2342);color:#fff}
.pm-modal-header h2{margin:0;font-size:16px;font-weight:700;letter-spacing:-.2px}
.pm-modal-close{background:none;border:0;color:rgba(255,255,255,.7);font-size:26px;line-height:1;cursor:pointer;padding:0 4px;transition:color .12s ease}
.pm-modal-close:hover{color:#fff}

.pm-modal-body{padding:22px}

.pm-current-card{background:#f5f7fb;border:1px solid #e1e5ee;border-radius:8px;padding:11px 14px;margin-bottom:18px;display:flex;flex-direction:column;gap:2px}
.pm-current-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#6b7299}
.pm-current-detail{font-size:13.5px;font-weight:600;color:#1a2342}

.pm-field{margin-bottom:14px}
.pm-field label{display:block;font-size:12.5px;font-weight:600;color:#3d4460;margin-bottom:6px;letter-spacing:-.05px}
.pm-field input[type="text"]{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;color:#1a1a2e;background:#fff;border:1px solid #d6dae5;border-radius:7px;transition:border-color .12s ease,box-shadow .12s ease;box-sizing:border-box}
.pm-field input[type="text"]:focus{outline:none;border-color:#2a4fa8;box-shadow:0 0 0 3px rgba(42,79,168,.12)}

.pm-card-element{padding:12px;border:1px solid #d6dae5;border-radius:7px;background:#fff;transition:border-color .12s ease,box-shadow .12s ease}
.pm-card-element.StripeElement--focus{border-color:#2a4fa8;box-shadow:0 0 0 3px rgba(42,79,168,.12)}
.pm-card-element.StripeElement--invalid{border-color:#c0392b}

/* paymentElement renders its own internal styling; we just give it room.
   Min-height accommodates wallet buttons + accordion-collapsed card form.
   The body has overflow-y:auto so taller render (with all wallets) scrolls. */
.pm-payment-element{min-height:60px}

.pm-field-error{margin-top:6px;font-size:12.5px;color:#c0392b;line-height:1.4;min-height:1em}

.pm-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.pm-btn{font-family:inherit;font-size:13.5px;font-weight:700;padding:10px 18px;border-radius:7px;cursor:pointer;border:1px solid transparent;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .08s ease;display:inline-flex;align-items:center;gap:8px;letter-spacing:-.05px}
.pm-btn:disabled{opacity:.6;cursor:not-allowed}
.pm-btn-secondary{background:#fff;border-color:#d6dae5;color:#3d4460}
.pm-btn-secondary:hover:not(:disabled){background:#f5f7fb}
.pm-btn-primary{background:linear-gradient(135deg,#e8732a,#c95f1e);color:#fff;box-shadow:0 2px 8px rgba(232,115,42,.25)}
.pm-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,115,42,.35)}

.pm-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:pmSpin .7s linear infinite}
@keyframes pmSpin{to{transform:rotate(360deg)}}

.pm-success-state{text-align:center;padding:24px 8px}
.pm-success-icon{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:#d1fae5;color:#0d8a4a;font-size:30px;display:flex;align-items:center;justify-content:center;font-weight:700}
.pm-success-title{font-size:16px;font-weight:700;color:#1a2342;margin-bottom:6px}
.pm-success-sub{font-size:13px;color:#6b7299;line-height:1.5}

@media(max-width:520px){
  .pm-modal{padding:0;align-items:flex-end}
  .pm-modal-card{max-width:none;border-radius:14px 14px 0 0;animation:pmInMobile .2s ease-out both}
  @keyframes pmInMobile{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .pm-modal-actions{flex-direction:column-reverse}
  .pm-btn{width:100%;justify-content:center}
}
