:root{--font-body:var(--font);--font-display:var(--display);--glass-border:#ffffff20;--border:#ffffff17;--border-2:#ffffff30;--text-2:#bbb4c6;--text-3:#91899e;--green:#b5d9bd}
.pay-sheet{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:1rem;background:rgba(0,0,0,.78)}
.pay-sheet[hidden]{display:none}
.pay-sheet-card{position:relative;width:min(32rem,100%);max-height:calc(100dvh - 2rem);overflow-y:auto;border:1px solid var(--glass-border);border-radius:24px;padding:1.5rem;
  background:radial-gradient(120% 90% at 100% 0%,rgba(191,90,242,.18),transparent 52%),#101010;
  box-shadow:0 24px 80px rgba(0,0,0,.55)}
.pay-x{position:absolute;right:1.1rem;top:.9rem;background:none;border:0;color:var(--text-2);font-size:1.7rem;cursor:pointer;line-height:1}
.pay-sheet-price,.pay-sheet-note{color:var(--text-2);font-size:.85rem;margin:.15rem 0 1rem}
.pay-flow-link{display:block;margin:1rem auto .3rem;background:none;border:0;color:#d9c9e8;font:inherit;font-size:.83rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.pay-status{margin:.9rem 0;color:var(--text-2);font-size:.83rem}
.pay-status.error{color:#ff9aa9}
.pay-coupon{margin:.8rem 0 1rem;padding:.8rem;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}
.pay-coupon>label{display:block;margin-bottom:.45rem;font-size:.72rem;font-weight:700;color:var(--text-2)}
.pay-coupon>div{display:flex;gap:.45rem}.pay-coupon input{min-width:0;flex:1;border:1px solid var(--border-2);border-radius:999px;background:#090909;color:#fff;padding:.72rem 1rem;text-transform:uppercase}
.pay-coupon button{border:0;border-radius:999px;padding:.7rem 1rem;background:#fff;color:#000;font-weight:800;cursor:pointer}
.pay-coupon p{min-height:1.1rem;margin:.4rem .25rem 0;font-size:.72rem;color:var(--text-3)}
.pay-coupon p.ok{color:var(--green)}.pay-coupon p.error{color:#ff9aa9}
.pay-addon{display:flex;width:100%;align-items:center;gap:.75rem;margin:.75rem 0;padding:.85rem;text-align:left;border:1px solid rgba(191,90,242,.35);border-radius:16px;background:rgba(191,90,242,.09);color:#fff;cursor:pointer}
.pay-addon[hidden]{display:none}.pay-addon[aria-pressed="true"]{border-color:var(--green);background:rgba(48,209,88,.09)}
.pay-addon-check{display:grid;place-items:center;flex:0 0 30px;height:30px;border:1px solid currentColor;border-radius:9px;font-weight:900}
.pay-addon span:last-child{display:flex;flex-direction:column;gap:.15rem}.pay-addon b{font-size:.82rem}.pay-addon small{color:var(--text-2);font-size:.7rem;line-height:1.35}
.pay-sheet button:focus-visible,.pay-sheet input:focus-visible{outline:2px solid #d8b9ff;outline-offset:3px}
@media(max-width:600px){.pay-sheet{padding:0;align-items:end}.pay-sheet-card{width:100%;max-height:96dvh;border-radius:24px 24px 0 0;padding:1.5rem 1.25rem max(1.4rem,env(safe-area-inset-bottom))}}
.pay-sheet .kicker{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}
.pay-sheet h2{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;font-size:1.45rem;line-height:1.15;margin:.4rem 0 .35rem}
.pay-choice{display:block;width:100%;margin-top:.55rem;border-radius:999px;padding:.95rem 1rem;font-family:var(--font-body);
  font-weight:700;font-size:.78rem;letter-spacing:.04em;cursor:pointer;text-align:center;background:#fff;color:#000;border:0}
.pay-choice.ghost{background:transparent;color:#fff;border:1px solid var(--border-2)}
.pay-choice:disabled{opacity:.55;cursor:wait}
.pay-choice.pay-soon{opacity:.55;cursor:not-allowed}
.pay-sheet [hidden]{display:none}
.flow-mail{display:block;margin-top:.55rem;font-size:.75rem;color:var(--text-2)}
.flow-mail input{width:100%;margin-top:.3rem;background:#0d0d0d;color:#fff;border:1px solid var(--border-2);border-radius:12px;padding:.7rem .85rem;font:inherit;font-size:.9rem}
.pay-close{margin-top:.75rem;background:none;border:0;color:var(--text-3);font:inherit;font-size:.8rem;cursor:pointer;width:100%}
.pay-sheet .mp-error{font-size:.8rem;color:#ff8da1;margin-top:.7rem}
body.pay-open{overflow:hidden}
