.pix-dialog { width: min(100% - 24px, 510px); max-height: calc(100dvh - 24px); margin: auto; padding: 0; border: 1px solid #ead3c2; border-radius: 24px; background: #fffaf5; color: #2f1d16; box-shadow: 0 28px 80px rgba(47,29,22,.28); overflow: hidden; }
.pix-dialog::backdrop { background: rgba(35,20,14,.58); backdrop-filter: blur(5px); }
.pix-shell { max-height: calc(100dvh - 24px); display: grid; grid-template-rows: auto minmax(0,1fr); }
.pix-header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 19px 13px; border-bottom: 1px solid #eadfd6; background: #fff; }
.pix-header span { display: grid; gap: 2px; min-width: 0; }
.pix-header small { color: #7b665c; font-weight: 750; }
.pix-header strong { font: 800 1.14rem/1.2 Georgia,serif; overflow-wrap: anywhere; }
.pix-close { width: 44px; height: 44px; flex: 0 0 auto; border: 1px solid #e4cab8; border-radius: 50%; background: #fff4e8; color: #773519; font-size: 1.35rem; cursor: pointer; }
.pix-body { min-width: 0; overflow-y: auto; overscroll-behavior: contain; padding: 18px 19px calc(19px + env(safe-area-inset-bottom)); }
.pix-form, .pix-payment, .pix-success { display: grid; gap: 15px; }
.pix-copy { margin: 0; color: #6f5b51; line-height: 1.55; }
.pix-field { display: grid; gap: 7px; font-weight: 850; }
.pix-field input { width: 100%; min-height: 52px; border: 1px solid #dcbda7; border-radius: 15px; background: #fff; color: #2f1d16; padding: 12px 14px; font: inherit; }
.pix-field input:focus-visible, .pix-primary:focus-visible, .pix-secondary:focus-visible, .pix-close:focus-visible { outline: 3px solid #8e3b18; outline-offset: 3px; }
.pix-primary, .pix-secondary { width: 100%; min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 16px; border-radius: 15px; font: 850 .96rem/1.2 inherit; cursor: pointer; text-decoration: none; }
.pix-primary { border: 0; background: linear-gradient(135deg,#c85628,#8e3013); color: #fff; box-shadow: 0 12px 24px rgba(142,48,19,.22); }
.pix-secondary { border: 1px solid #dcbda7; background: #fff; color: #743316; }
.pix-primary:disabled, .pix-secondary:disabled { opacity: .58; cursor: wait; }
.pix-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px 16px; align-items: end; padding: 14px; border: 1px solid #ead3c2; border-radius: 16px; background: #fff; }
.pix-summary span { color: #79675e; font-size: .84rem; }
.pix-summary strong { grid-column: 2; grid-row: 1; font: 800 1.3rem/1 Georgia,serif; white-space: nowrap; }
.pix-summary small { grid-column: 1 / -1; grid-row: 2; color: #236b55; font-weight: 800; overflow-wrap: anywhere; }
.pix-qr { width: min(74vw,260px); aspect-ratio: 1; display: grid; place-items: center; justify-self: center; padding: 10px; border: 1px solid #ead3c2; border-radius: 18px; background: #fff; }
.pix-qr img { width: 100%; height: 100%; display: block; object-fit: contain; }
.pix-code { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.pix-code input { min-width: 0; min-height: 48px; border: 1px solid #e0c5b2; border-radius: 13px; background: #fff; padding: 10px 12px; color: #5f4a40; text-overflow: ellipsis; }
.pix-code button { min-width: 86px; border: 0; border-radius: 13px; background: #f2dfd1; color: #723216; font-weight: 850; cursor: pointer; }
.pix-note, .pix-status { margin: 0; color: #765f54; font-size: .82rem; line-height: 1.45; text-align: center; }
.pix-status[data-error="true"] { color: #a1201b; font-weight: 800; }
.pix-success-mark { width: 68px; height: 68px; display: grid; place-items: center; justify-self: center; border-radius: 50%; background: #e8f5ee; color: #246149; font-size: 2rem; font-weight: 900; }
.pix-success { text-align: center; }
.pix-success h2 { margin: 0; font: 800 1.65rem/1.15 Georgia,serif; }
@media (max-width: 560px) {
  .pix-dialog { width: 100%; max-height: min(94dvh,760px); margin: auto 0 0; border-radius: 24px 24px 0 0; border-bottom: 0; }
  .pix-shell { max-height: min(94dvh,760px); }
}
@media (prefers-reduced-motion: reduce) { .pix-dialog::backdrop { backdrop-filter: none; } }
