.voucher-dialog{box-sizing:border-box;margin:auto;width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:0;border-radius:9px;padding:32px;background:var(--surface);color:var(--text);font:12px/1.6 'Plus Jakarta Sans',sans-serif;box-shadow:0 20px 65px #0005}.voucher-dialog::backdrop{background:#0009}.voucher-dialog[open]{animation:voucherIn .24s cubic-bezier(.2,.8,.2,1)}.voucher-close{position:absolute;top:18px;right:18px;border:0;background:none;color:var(--muted);font:22px/1 sans-serif;cursor:pointer;width:28px;height:28px}.voucher-symbol{position:relative;width:38px;height:38px;margin-bottom:22px}.voucher-symbol img{width:38px;height:38px;opacity:.8}.voucher-symbol svg{position:absolute;inset:0;width:38px;height:38px;fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0}.voucher-dialog h2{font-size:23px;font-weight:500;letter-spacing:-.04em;margin:0 0 5px}.voucher-caption{color:var(--muted);margin:0 0 25px;min-height:20px}.voucher-dialog input{width:100%;box-sizing:border-box;padding:15px 14px;background:var(--bg);border:0;border-radius:4px;color:var(--text);font:14px/1.4 Consolas,monospace;letter-spacing:.04em}.voucher-dialog input::placeholder{font:12px 'Plus Jakarta Sans',sans-serif;letter-spacing:0;color:var(--muted)}.voucher-message{min-height:34px;padding-top:8px;box-sizing:border-box;color:var(--muted);font-size:11px}.voucher-submit{display:block;margin-left:auto;border:0;background:none;color:var(--accent);font:12px 'Plus Jakarta Sans',sans-serif;padding:8px 0 0 12px;cursor:pointer;transition:transform .18s,color .18s}.voucher-submit:hover{transform:scale(1.05);color:var(--text)}.voucher-submit:disabled{opacity:.5;cursor:wait}.voucher-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:4px}.voucher-dialog [hidden]{display:none}.voucher-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.voucher-dialog[data-state=pending] .voucher-symbol{animation:voucherBreathe 1.4s ease-in-out infinite}.voucher-dialog[data-state=error] input{animation:voucherNudge .26s ease-out}.voucher-dialog[data-state=error] .voucher-message{color:#df8585}.voucher-dialog[data-state=success] .voucher-symbol img{opacity:0;transition:opacity .16s}.voucher-dialog[data-state=success] .voucher-symbol svg{opacity:1;stroke-dasharray:32;animation:voucherCheck .45s ease-out}.voucher-dialog[data-state=success] .voucher-symbol i{position:absolute;width:3px;height:3px;background:var(--accent);border-radius:50%;top:50%;left:50%;animation:voucherSpark .65s ease-out both;--x:-28px;--y:-20px}.voucher-symbol i:nth-last-child(2){--x:30px!important;--y:-14px!important}.voucher-symbol i:last-child{--x:12px!important;--y:29px!important}@keyframes voucherIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes voucherBreathe{50%{opacity:.45;transform:translateY(-2px)}}@keyframes voucherNudge{25%{transform:translateX(-3px)}70%{transform:translateX(2px)}}@keyframes voucherCheck{from{stroke-dashoffset:32;transform:scale(.8)}to{stroke-dashoffset:0;transform:scale(1)}}@keyframes voucherSpark{from{opacity:.7;transform:translate(0,0)}to{opacity:0;transform:translate(var(--x),var(--y))}}@media(prefers-reduced-motion:reduce){.voucher-dialog,.voucher-dialog *{animation:none!important;transition:none!important}}

.voucher-dialog form{min-height:114px}.voucher-dialog[data-state=success] form{display:flex;flex-direction:column;justify-content:flex-end}

.voucher-dialog[data-state=invitation] .voucher-symbol{animation:voucherInvite .55s cubic-bezier(.2,.8,.2,1)}.voucher-dialog[data-state=invitation] .voucher-message{color:var(--text);padding-top:0;max-width:270px}.voucher-dialog[data-state=invitation] form{display:flex;flex-direction:column;justify-content:space-between}.voucher-dialog[data-state=invitation] .voucher-caption{margin-bottom:20px}@keyframes voucherInvite{from{opacity:.35;transform:scale(.8) rotate(-12deg)}65%{transform:scale(1.08) rotate(3deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.voucher-dialog[data-state=invitation] .voucher-symbol{animation:none}}

.voucher-dialog{position:fixed;inset:auto;margin:0;width:min(340px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:21px 20px 18px;z-index:10000;box-shadow:0 8px 25px #0003;border-radius:7px}.voucher-dialog::backdrop{background:transparent}.voucher-symbol{position:absolute;top:20px;left:20px;width:24px;height:24px;margin:0}.voucher-symbol img,.voucher-symbol svg{width:24px;height:24px}.voucher-close{top:15px;right:12px;width:26px;height:26px;font-size:19px}.voucher-dialog h2{font-size:17px;padding:0 22px 0 34px;margin:0 0 18px;line-height:1.45;letter-spacing:-.025em}.voucher-caption{font-size:11px;margin:0 0 15px;min-height:0}.voucher-caption:empty{display:none}.voucher-dialog input{padding:12px;font-size:13px}.voucher-dialog form{min-height:0}.voucher-message{min-height:25px;padding-top:6px;line-height:1.5}.voucher-submit{padding-top:4px;font-size:11px}.voucher-dialog[data-state=invitation] .voucher-caption{margin-bottom:12px}.voucher-dialog[data-state=invitation] .voucher-submit{margin-top:16px}.voucher-dialog[data-state=success] .voucher-message{display:none}.voucher-dialog[data-state=success] .voucher-submit{margin-top:8px}.voucher-dialog input:focus-visible{outline:1px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:0}@media(max-width:520px){.voucher-dialog input{font-size:16px}}

@media(max-width:520px){.voucher-dialog{inset:auto 0 0!important;width:100%;max-width:none;max-height:80dvh;margin:0;border-radius:13px 13px 0 0;padding:25px 24px calc(22px + env(safe-area-inset-bottom))}.voucher-dialog[open]{animation:voucherSheet .28s cubic-bezier(.2,.8,.2,1)}.voucher-dialog::before{content:'';position:absolute;width:28px;height:3px;background:var(--muted);opacity:.25;border-radius:3px;top:8px;left:calc(50% - 14px)}.voucher-symbol{top:24px;left:24px}.voucher-close{top:19px;right:16px}@keyframes voucherSheet{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}}@media(prefers-reduced-motion:reduce){.voucher-dialog[open]{animation:none}}
