.payment-modal[hidden] { display: none; }
.payment-modal { position: fixed; z-index: 2100; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgba(2, 7, 19, .84); }
.payment-card { width: min(100%, 31rem); padding: clamp(1.2rem, 4vw, 2rem); border: 1px solid rgba(216,181,106,.52); border-radius: 1rem; background: linear-gradient(145deg,#122752,#081120); color: #f8f5ee; box-shadow: 0 1.5rem 5rem rgba(0,0,0,.55); }
.payment-card h2 { margin: .35rem 0 .7rem; font-size: clamp(1.5rem,5vw,2.2rem); }
.payment-card p { color: rgba(248,245,238,.78); line-height: 1.55; }
.payment-plan { margin: 1rem 0; color: #f4d180 !important; font-weight: 700; }
.payment-preview-note { padding: .75rem; border-left: 2px solid #d8b56a; background: rgba(216,181,106,.1); font-size: .85rem; }
.payment-fields { display: grid; gap: .75rem; margin: 1.1rem 0; }
.payment-fields label { display: grid; gap: .35rem; font-size: .78rem; letter-spacing: .05em; }
.payment-fields input { width: 100%; box-sizing: border-box; padding: .8rem; border: 1px solid rgba(248,245,238,.24); border-radius: .5rem; background: rgba(0,0,0,.2); color: #f8f5ee; font: inherit; }
.payment-fields input:disabled { opacity: .78; cursor: not-allowed; }
.payment-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.payment-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.payment-actions button { padding: .7rem .95rem; border: 1px solid rgba(216,181,106,.6); border-radius: .45rem; background: transparent; color: #f8f5ee; font: inherit; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.payment-actions .payment-pay { background: #d8b56a; color: #07142e; font-weight: 800; }
.payment-status { min-height: 1.5rem; margin: 1rem 0 0 !important; color: #f4d180 !important; font-size: .9rem; }
