/* Checkout dialog */
.pay-dialog{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:38px 32px 30px;border:1px solid var(--line);border-radius:28px;background:var(--panel);color:var(--text);font-family:var(--body)}
.pay-dialog::backdrop{background:#000000b8;backdrop-filter:blur(6px)}
.pay-dialog[open]{animation:pay-in .45s cubic-bezier(.2,.7,.2,1)}
@keyframes pay-in{from{opacity:0;transform:translateY(24px) scale(.97)}}
.pay-close{position:absolute;top:12px;right:16px;width:40px;height:40px;border:0;background:none;color:var(--muted);font-size:30px;line-height:1;cursor:pointer}
.pay-close:hover{color:var(--text)}
.pay-dialog h2{margin:0 0 12px;font:500 clamp(22px,3vw,28px)/1.2 var(--display);letter-spacing:-.035em}
.pay-lead{margin:0 0 14px;color:var(--muted);font-size:15px;line-height:1.6}
.pay-lead b{color:var(--text)}
.pay-error{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:#ff6b6b1f;color:#ffb3b3;font-size:14px;line-height:1.5}
.pay-form{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.pay-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.pay-form input:not([type=checkbox]){min-height:50px;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);font:inherit;font-size:16px;transition:border-color .3s}
.pay-form input:focus{border-color:var(--violet);outline:0}
.pay-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.pay-form .pay-check{flex-direction:row;align-items:flex-start;gap:10px;line-height:1.5}
.pay-check input{margin-top:3px;accent-color:#9274db}
.pay-check a{color:var(--violet);border-bottom:1px solid currentColor}
.pay-submit{width:100%;margin-top:6px}
.pay-submit:disabled{opacity:.6;cursor:wait}
.pay-foot{margin:18px 0 0;font-size:13px;color:var(--muted);line-height:1.6}
.pay-alt{color:var(--violet);border-bottom:1px solid currentColor}
.pay-spinner{width:34px;height:34px;margin:20px 0 6px;border:3px solid var(--line);border-top-color:var(--violet);border-radius:50%;animation:pay-spin 1s linear infinite}
@keyframes pay-spin{to{transform:rotate(360deg)}}
@media (max-width:600px){.pay-dialog{padding:34px 20px 24px}}

/* required-field markers */
.pay-req{color:#f1a7d6;font-weight:700}
.pay-hint{margin:0;font-size:12.5px;line-height:1.5;color:var(--muted)}
.pay-form input[aria-invalid="true"]{border-color:#ff8c8c}

/* payment method switch + requisites box */
.pay-modes{display:flex;gap:6px;margin:0 0 16px;padding:5px;border:1px solid var(--line);border-radius:999px;background:var(--bg)}
.pay-mode{flex:1;min-height:42px;padding:0 12px;border:0;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:14px;cursor:pointer;transition:background .3s,color .3s}
.pay-mode.on{background:#9274db;color:#fff}
.pay-form select{min-height:50px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);font:inherit;font-size:16px}
.pay-box{margin:0 0 14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);font:15px/1.6 var(--body);white-space:pre-wrap;word-break:break-word;user-select:all}
.pay-copy{margin-bottom:10px;background:transparent;border:1px solid var(--line);color:var(--text)}
