.vz-app--cadastro .vz-app__conteudo { max-width: 1080px; padding: 2rem 1.25rem 3rem; }
.vz-cadastro { --cad-fundo: #fff; --cad-borda: #e3e8ef; --cad-texto: #14202e; --cad-suave: #53647a; --cad-secundario: #f8fafd; --cad-azul-fundo: #edf3ff; color: var(--cad-texto); }
.vz-cadastro [hidden] { display: none !important; }
.vz-cadastro__cabecalho { margin-bottom: 1.4rem; }
.vz-cadastro__sobretitulo { font-size: .7rem; font-weight: 750; letter-spacing: .1em; color: var(--cad-suave); margin-bottom: .5rem; }
.vz-cadastro__cabecalho h1 { font-size: clamp(1.7rem, 3vw, 2.15rem); font-weight: 750; letter-spacing: -.03em; margin-bottom: .55rem; }
.vz-cadastro__cabecalho > p:last-child { color: var(--cad-suave); font-size: .94rem; }
.vz-cadastro__etapas { display: flex; padding: 0; margin: 0 0 1.5rem; list-style: none; gap: 1.5rem; }
.vz-cadastro__etapas li { display: flex; align-items: center; gap: .6rem; font-size: .83rem; color: var(--cad-suave); }
.vz-cadastro__etapas li > span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--cad-borda); border-radius: 50%; background: var(--cad-fundo); }
.vz-cadastro__etapas [aria-current="step"] { color: var(--vz-primaria); }
.vz-cadastro__etapas [aria-current="step"] > span { background: var(--vz-primaria); color: #fff; border-color: var(--vz-primaria); }
.vz-cadastro__layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 1.5rem; align-items: start; }
.vz-cadastro__dados { min-width: 0; margin: 0; padding: 0; border: 0; }
.vz-cadastro__card { padding: 1.5rem; border: 1px solid var(--cad-borda); border-radius: 18px; background: var(--cad-fundo); margin-bottom: 1rem; box-shadow: 0 2px 4px rgba(16,24,40,.025); }
.vz-cadastro__card h2 { font-size: 1.03rem; font-weight: 700; margin: 0 0 .4rem; }
.vz-cadastro__ajuda { color: var(--cad-suave); font-size: .83rem; line-height: 1.6; margin: 0 0 1.1rem; }
.vz-cadastro__perfis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.vz-cadastro__perfil { position: relative; cursor: pointer; min-width: 0; }
.vz-cadastro__perfil > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.vz-cadastro__perfil-conteudo { display: flex; flex-direction: column; align-items: flex-start; padding: 1rem; height: 100%; border: 2px solid var(--cad-borda); border-radius: 12px; background: var(--cad-secundario); }
.vz-cadastro__perfil svg { width: 26px; height: 26px; margin-bottom: .75rem; color: var(--cad-suave); }
.vz-cadastro__perfil strong { font-size: .95rem; margin-bottom: .3rem; }
.vz-cadastro__perfil small { font-size: .79rem; line-height: 1.5; color: var(--cad-suave); }
.vz-cadastro__selecao { visibility: hidden; font-size: .67rem; font-weight: 700; margin-top: .75rem; color: var(--vz-primaria); }
.vz-cadastro__perfil input:checked + span { border-color: var(--vz-primaria); background: var(--cad-azul-fundo); }
.vz-cadastro__perfil input:checked + span svg { color: var(--vz-primaria); }
.vz-cadastro__perfil input:checked + span .vz-cadastro__selecao { visibility: visible; }
.vz-cadastro__perfil input:focus-visible + span { outline: 3px solid #92b5ff; outline-offset: 3px; }
.vz-cadastro__campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.vz-cadastro__campos > div { min-width: 0; }
.vz-cadastro__campo-inteiro { grid-column: 1 / -1; }
.vz-cadastro__campos label, .vz-cadastro__confirmacao > label { display: block; font-size: .8rem; font-weight: 650; margin: 0 0 .4rem; }
.vz-cadastro .vz-campo { background: var(--cad-fundo); color: var(--cad-texto); min-height: 48px; border: 1px solid var(--cad-borda); border-radius: 10px; font-size: .92rem; padding: .65rem .8rem; margin: 0; }
.vz-cadastro .vz-campo::placeholder { color: var(--cad-suave); opacity: .85; }
.vz-cadastro .vz-campo:focus { border-color: var(--vz-primaria); outline: 3px solid rgba(26,86,219,.2); }
.vz-cadastro__termos { display: flex; gap: .65rem; align-items: flex-start; padding-top: 1rem; border-top: 1px solid var(--cad-borda); font-size: .82rem; line-height: 1.6; }
.vz-cadastro__termos input { width: 18px; height: 18px; flex-shrink: 0; margin-top: .2rem; accent-color: var(--vz-primaria); }
.vz-cadastro__enviar { width: 100%; min-height: 52px !important; display: flex; justify-content: center; align-items: center; gap: .75rem; font-size: .95rem; }
.vz-cadastro__beneficios { padding: 0; margin: 1.25rem 0 0; list-style: none; display: grid; gap: 1.25rem; }
.vz-cadastro__beneficios li { display: flex; align-items: flex-start; gap: .7rem; }
.vz-cadastro__beneficios li > span { flex: 0 0 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: var(--cad-azul-fundo); color: var(--vz-primaria); font-weight: 700; font-size: .75rem; }
.vz-cadastro__beneficios strong { font-size: .82rem; }
.vz-cadastro__beneficios p { font-size: .77rem; color: var(--cad-suave); margin: .25rem 0 0; line-height: 1.6; }
.vz-cadastro__apoio .vz-cadastro__card { padding: 1.25rem; }
.vz-cadastro__entrar { background: var(--cad-secundario); }
.vz-cadastro__alternativa { display: flex; justify-content: center; gap: .5rem; font-size: .8rem; padding: .25rem .5rem; text-align: center; }
.vz-cadastro__aviso { margin: 1rem 0 0; padding: .8rem; font-size: .8rem; line-height: 1.6; background: var(--cad-azul-fundo); border-radius: 10px; }
.vz-cadastro__confirmacao { text-align: center; padding: 2rem; }
.vz-cadastro__codigo-icone { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 1rem; background: var(--cad-azul-fundo); color: var(--vz-primaria); border-radius: 16px; font-size: 1.4rem; }
.vz-cadastro__confirmacao .vz-campo--codigo { max-width: 300px; margin: .5rem auto 1rem; font-size: 1.8rem; min-height: 64px; }
.vz-cadastro__confirmacao .btn-link { font-size: .82rem; }
@media (max-width: 850px) { .vz-cadastro__layout { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; } .vz-cadastro__apoio > section:first-child { display: none; } }
@media (max-width: 575px) {
    .vz-app--cadastro .vz-app__conteudo { padding: 1.5rem 1rem 2rem; }
    .vz-cadastro__card, .vz-cadastro__confirmacao { padding: 1.15rem; }
    .vz-cadastro__campos { grid-template-columns: minmax(0, 1fr); }
    .vz-cadastro__perfil-conteudo { padding: .8rem; }
    .vz-cadastro__etapas { gap: 1rem; }
    .vz-cadastro__etapas li { font-size: .74rem; gap: .4rem; }
}
@media (prefers-color-scheme: dark) {
    .vz-cadastro { --cad-fundo: #171c23; --cad-borda: #394453; --cad-texto: #e6edf6; --cad-suave: #b3c0d2; --cad-secundario: #1d2531; --cad-azul-fundo: #182c50; }
    .vz-cadastro a:not(.vz-botao-principal), .vz-cadastro .btn-link { color: #94baff; }
    .vz-cadastro .btn-outline-primary { border-color: #648dda; }
    .vz-cadastro .btn-outline-primary:hover { background: #234577; color: #fff; }
    .vz-cadastro__etapas [aria-current="step"], .vz-cadastro__selecao, .vz-cadastro__perfil input:checked + span svg, .vz-cadastro__beneficios li > span, .vz-cadastro__codigo-icone { color: #94baff; }
}
