/* Cadastro compartilhado pelo site e pelo login. Estilos isolados do painel. */
body.modal-aberto { overflow: hidden; }
.modal-cadastro { --roxo-500: #8b3af0; --roxo-600: #7426d7; --roxo-700: #5820aa; --roxo-50: #f6f1ff; --muted: #6b7280; --verde: #16a380; position: fixed; z-index: 1000; inset: 0; display: none; align-items: center; justify-content: center; padding: 20px; color: #202332; font-family: Inter, sans-serif; }
.modal-cadastro.aberto { display: flex; }
.modal-cadastro *, .modal-cadastro *::before, .modal-cadastro *::after { box-sizing: border-box; }
.modal-cadastro [hidden] { display: none !important; }
.modal-cadastro .modal-fundo { position: absolute; inset: 0; background: #0f0a19ad; backdrop-filter: blur(5px); }
.modal-cadastro .cadastro-card { position: relative; width: min(740px, 100%); max-height: calc(100dvh - 40px); padding: 32px; overflow: auto; overscroll-behavior: contain; border: 1px solid #e5ddf3; border-radius: 24px; background: #fff; box-shadow: 0 30px 90px #0005; scrollbar-width: thin; scrollbar-color: #c5b5e8 transparent; }
.modal-cadastro .fechar-modal { position: sticky; z-index: 2; top: 0; float: right; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; color: #5c6070; background: #f1eff4; cursor: pointer; }
.modal-cadastro .cadastro-cabecalho { margin: 3px 42px 24px; text-align: center; }
.modal-cadastro .cadastro-icone { width: 48px; height: 48px; margin: 0 auto 11px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: linear-gradient(135deg, #8b3af0, #5820aa); }
.modal-cadastro .cadastro-cabecalho > span { color: #7426d7; font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.modal-cadastro .cadastro-cabecalho h2 { margin: 6px 0; font-size: 1.65rem; line-height: 1.25; letter-spacing: -.03em; color: #202332; }
.modal-cadastro .cadastro-cabecalho p { margin: 0; color: #6b7280; font-size: .82rem; line-height: 1.5; }
.modal-cadastro .form-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px; }
.modal-cadastro .form-grid label { display: flex; flex-direction: column; min-width: 0; gap: 6px; margin: 0; }
.modal-cadastro .form-grid label > span:first-child { color: #454a59; font-size: .8rem; font-weight: 650; }
.modal-cadastro .form-grid input { min-width: 0; width: 100%; min-height: 46px; padding: 11px 12px; font: inherit; font-size: .88rem; outline: 0; border: 1px solid #dad5e2; border-radius: 11px; color: #333745; background: #fbfafc; }
.modal-cadastro .form-grid input:focus { border-color: #8b3af0; background: #fff; box-shadow: 0 0 0 4px #6d28d917; }
.modal-cadastro .senha-campo { display: block; position: relative; }
.modal-cadastro .senha-campo input { padding-right: 46px; }
.modal-cadastro .senha-campo button { position: absolute; top: 4px; bottom: 4px; right: 4px; width: 38px; padding: 0; border: 0; border-radius: 9px; color: #777181; background: transparent; cursor: pointer; }
.modal-cadastro .aceite { display: flex; align-items: flex-start; gap: 9px; margin: 15px 0; color: #626777; font-size: .78rem; line-height: 1.5; }
.modal-cadastro .aceite input { flex: 0 0 auto; width: 17px; height: 17px; margin: 2px 0 0; accent-color: #7426d7; cursor: pointer; }
.modal-cadastro a { color: #5820aa; text-decoration: none; font-weight: 650; }
.modal-cadastro a:hover { text-decoration: underline; }
.modal-cadastro .btn.primario { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; padding: 13px 16px; border: 0; border-radius: 12px; background: linear-gradient(135deg,#8b3af0,#5820aa); color: #fff; font: inherit; font-weight: 700; font-size: .88rem; line-height: 1.4; cursor: pointer; }
.modal-cadastro .btn:disabled { cursor: wait; opacity: .7; }
.modal-cadastro .login-link { margin: 16px 0 0; color: #6b7280; font-size: .8rem; text-align: center; }
.modal-cadastro .erro-cadastro { display: none; margin: 0 0 18px; padding: 13px 15px; border: 1px solid #fecaca; border-radius: 10px; background: #fef3f2; color: #b42318; font-size: .82rem; line-height: 1.5; }
.modal-cadastro .cadastro-sucesso { padding: 28px 10px; text-align: center; }
.modal-cadastro .cadastro-sucesso > i { color: #16a380; font-size: 56px; }
.modal-cadastro .cadastro-sucesso h2 { margin: 14px 0 8px; color: #202332; }
.modal-cadastro .cadastro-sucesso p { color: #6b7280; line-height: 1.6; }
.modal-cadastro .sucesso-acoes { display: flex; flex-direction: column; gap: 10px; margin: 24px auto 0; max-width: 380px; }
.modal-cadastro .aviso-email { padding: 13px; border-radius: 10px; background: #f6f1ff; color: #5b4a7d; font-size: .82rem; line-height: 1.6; }
.modal-cadastro :focus-visible { outline: 3px solid #bfa3f5; outline-offset: 3px; }
@media (max-width: 620px) {
    .modal-cadastro { padding: 12px; }
    .modal-cadastro .cadastro-card { max-height: calc(100dvh - 24px); padding: 24px 18px; border-radius: 20px; }
    .modal-cadastro .cadastro-cabecalho { margin-inline: 28px; }
    .modal-cadastro .cadastro-cabecalho h2 { font-size: 1.35rem; }
    .modal-cadastro .form-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
    .modal-cadastro .form-grid input { font-size: 16px; }
}
