.modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.75);
  display:none;
  justify-content:center;
  align-items:center;
  z-index:999;
}

.modal.active{
  display:flex;
}

.modal-window{
  width:min(620px,92vw);
  background:linear-gradient(180deg,rgba(28,28,30,.98),rgba(18,18,20,.98));
  border:1px solid rgba(255,255,255,.08);
  border-radius:30px;
  padding:34px;
  box-shadow:0 40px 120px rgba(0,0,0,.6);
  animation:modalShow .25s ease;
}

.modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px;
}

.modal-description{
  color:var(--muted);
  margin-bottom:22px;
  font-size:15px;
  line-height:1.6;
}

.key-box{
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:18px;
  margin-bottom:24px;
  overflow:auto;
}

.key-box code{
  font-size:13px;
  color:#f4f4f4;
  word-break:break-all;
}

.qr-window{
  max-width:520px;
}

.qr-box{
  display:grid;
  place-items:center;
  margin:24px 0;
}

.qr-placeholder{
  width:260px;
  height:260px;
  border-radius:28px;
  background:
    linear-gradient(90deg, transparent 45%, rgba(0,0,0,.12) 45% 55%, transparent 55%),
    linear-gradient(0deg, transparent 45%, rgba(0,0,0,.12) 45% 55%, transparent 55%),
    #f4f4f4;
  color:#050505;
  display:grid;
  place-items:center;
  font-size:44px;
  font-weight:900;
}

.modal-warning{
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
  margin-top:14px;
}

.modal-actions{
  display:flex;
  gap:14px;
  margin-top:28px;
}

.secondary-button,
.danger-button{
  flex:1;
  height:54px;
  border-radius:16px;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
}

.secondary-button{
  background:#202020;
  border:1px solid rgba(255,255,255,.08);
  color:#fff;
}

.danger-button{
  background:#d94d4d;
  color:white;
  border:none;
}

.input-group{
  display:grid;
  gap:10px;
  margin-top:24px;
  margin-bottom:24px;
}

.input-group label{
  color:var(--muted);
  font-size:14px;
}

.input-group input{
  width:100%;
  height:56px;
  padding:0 18px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--text);
  font-size:16px;
  outline:none;
}

.input-group input.error{
  border-color:#d94d4d;
}

.input-error{
  display:none;
  color:#ffb3b3;
  font-size:13px;
}

.input-error.active{
  display:block;
}

.toast{
  position:fixed;
  top:30px;
  right:30px;
  padding:14px 18px;
  border-radius:999px;
  background:#f4f4f4;
  color:#050505;
  font-weight:700;
  opacity:0;
  transform:translateY(-15px);
  transition:.25s;
  pointer-events:none;
  z-index:2000;
}

.toast.active{
  opacity:1;
  transform:none;
}

@keyframes modalShow{
  from{
    opacity:0;
    transform:translateY(25px) scale(.98);
  }

  to{
    opacity:1;
    transform:none;
  }
}
.payments-window{
  width:min(720px,92vw);
}

.payments-list{
  display:grid;
  gap:12px;
  margin:24px 0;
}

.payment-item{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:18px;
  border-radius:20px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
}

.payment-item span{
  color:var(--muted);
  font-size:13px;
}

.payment-item strong{
  display:block;
  margin:6px 0;
  font-size:18px;
}

.payment-item p{
  color:var(--muted);
  font-size:14px;
}

.payment-side{
  text-align:right;
  white-space:nowrap;
}

.payment-side span{
  color:#d8d8d8;
}
.payment-side strong{
  font-size:24px;
  font-weight:900;
  letter-spacing:-.5px;
}

.paid-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#9cffb8 !important;
  font-weight:700;
}

.modal.active .modal-window{
  animation:modalPop .22s cubic-bezier(.2,.9,.25,1) both;
}

@keyframes modalPop{
  from{
    opacity:0;
    transform:scale(.96) translateY(14px);
  }

  to{
    opacity:1;
    transform:scale(1) translateY(0);
  }
}