.mmp-btn {
	--mmp-cor: #5b3df5;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 14px 26px; border: 0; border-radius: 10px;
	background: var(--mmp-cor); color: #fff !important; font-weight: 700; font-size: 1rem;
	text-decoration: none; cursor: pointer; line-height: 1.2; box-sizing: border-box;
	transition: transform .1s ease, opacity .2s ease;
}
.mmp-btn:active { transform: scale(.98); }
.mmp-btn[disabled] { opacity: .6; cursor: wait; }
.mmp-btn.is-ok { background: #16a34a; }
.mmp-full { width: 100%; }
html.mmp-aberto { overflow: hidden; }

.mmp-overlay {
	position: fixed; inset: 0; z-index: 999999;
	background: rgba(15, 12, 35, .62);
	display: flex; align-items: center; justify-content: center; padding: 16px;
}
.mmp-overlay[hidden] { display: none; }
.mmp-modal {
	position: relative; width: 100%; max-width: 420px; max-height: calc(100dvh - 32px); overflow: auto;
	background: #fff; color: #1d1b2e; border-radius: 18px; padding: 28px 22px 22px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
	font-family: inherit; text-align: center;
}
.mmp-fechar {
	position: absolute; top: 8px; right: 10px; width: 36px; height: 36px;
	border: 0; background: transparent; font-size: 28px; line-height: 1; color: #888; cursor: pointer;
}
.mmp-modal h2 { font-size: 1.35rem; margin: 0 0 6px; }
.mmp-sub { margin: 0 0 18px; color: #555; font-size: .95rem; }
.mmp-modal label { display: block; text-align: left; font-weight: 600; font-size: .9rem; margin-bottom: 12px; }
.mmp-modal input[type="text"], .mmp-modal input[type="email"] {
	display: block; width: 100%; box-sizing: border-box; margin-top: 6px;
	padding: 13px 14px; font-size: 16px; /* 16px evita zoom no iPhone */
	border: 1.5px solid #dcd9ea; border-radius: 10px; background: #fafaff;
}
.mmp-modal input:focus { outline: none; border-color: #5b3df5; box-shadow: 0 0 0 3px rgba(91, 61, 245, .15); }
.mmp-aceite { font-weight: 400 !important; display: flex !important; gap: 8px; align-items: flex-start; }
.mmp-aceite input { margin-top: 3px; }
.mmp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.mmp-erro { color: #c62828; min-height: 1.2em; margin: 0 0 10px; font-size: .9rem; }

.mmp-qr { width: 220px; max-width: 70vw; margin: 0 auto 14px; }
.mmp-qr svg { width: 100%; height: auto; display: block; }
.mmp-copia {
	margin-top: 10px; font-family: monospace; font-size: 12px !important; color: #666;
}
.mmp-passos { text-align: left; font-size: .88rem; color: #444; margin: 16px 0 10px 1.1em; padding: 0; }
.mmp-passos li { margin-bottom: 4px; }
.mmp-status { font-weight: 600; margin: 10px 0 4px; font-size: .95rem; }
.mmp-spin {
	display: inline-block; width: 14px; height: 14px; vertical-align: -2px; margin-right: 6px;
	border: 2px solid #e2def5; border-top-color: #5b3df5; border-radius: 50%;
	animation: mmpgira .8s linear infinite;
}
@keyframes mmpgira { to { transform: rotate(360deg); } }
.mmp-link { background: none; border: 0; color: #5b3df5; text-decoration: underline; cursor: pointer; font-size: .9rem; padding: 6px; }
.mmp-ok {
	width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 50%;
	background: #16a34a; color: #fff; font-size: 34px; line-height: 64px; font-weight: 700;
}
.mmp-bloqueado { text-align: center; padding: 24px 0; }

/* Celular: modal vira "folha" de baixo para cima */
@media (max-width: 480px) {
	.mmp-overlay { align-items: flex-end; padding: 0; }
	.mmp-modal { max-width: none; border-radius: 18px 18px 0 0; max-height: 94dvh; padding-bottom: calc(22px + env(safe-area-inset-bottom)); }
}
