/* Identidade visual do Grupo Ipeconect */
:root { --azul: #46548c; --azul-escuro: #3a4a81; --texto: #1f2430; --texto-suave: #5a6072; --borda: #d9dde6; --fundo: #f7f8fb; --erro: #b3261e; --erro-fundo: #fdecea; --sucesso-fundo: #eaf6ee; --sucesso-texto: #1e6b3a; }
* { box-sizing: border-box; }
body { margin: 0; font-family: 'Inter', system-ui, sans-serif; color: var(--texto); background: var(--fundo); }
.pagina { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }
.cabecalho { margin-bottom: 28px; }
.marca { color: var(--azul); font-weight: 700; font-size: 13px; letter-spacing: 0.08em; margin: 0 0 8px; }
h1 { margin: 0 0 8px; font-size: 28px; color: var(--azul-escuro); }
.subtitulo { margin: 0; color: var(--texto-suave); }
.carregando { color: var(--texto-suave); padding: 24px 0; }
.erro { background: var(--erro-fundo); color: var(--erro); border: 1px solid #f3c6c2; border-radius: 8px; padding: 12px 16px; margin-bottom: 20px; }
.erro ul { margin: 0; padding-left: 18px; }
.sucesso { background: var(--sucesso-fundo); color: var(--sucesso-texto); border: 1px solid #bfe3cb; border-radius: 8px; padding: 20px; }
form { display: flex; flex-direction: column; gap: 16px; }
.linha { display: flex; gap: 12px; }
.linha .campo { flex: 1; }
.campo-uf { max-width: 100px; }
.campo { display: flex; flex-direction: column; gap: 6px; }
label { font-size: 14px; font-weight: 500; color: var(--texto); }
label span[aria-hidden] { color: var(--erro); }
input[type='text'], input[type='email'], input[type='tel'], input[type='file'], select { font: inherit; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 8px; background: #fff; color: var(--texto); }
input:focus, select:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(70, 84, 140, 0.15); }
.nome-arquivo { margin: 0; font-size: 13px; color: var(--texto-suave); }
.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.campo-consentimento { flex-direction: row; }
.rotulo-checkbox { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 14px; color: var(--texto-suave); cursor: pointer; }
.rotulo-checkbox input { margin-top: 3px; flex-shrink: 0; }
button[type='submit'] { font: inherit; font-weight: 600; padding: 12px 20px; border: none; border-radius: 8px; background: var(--azul); color: #fff; cursor: pointer; }
button[type='submit']:hover:not(:disabled) { background: var(--azul-escuro); }
button[type='submit']:disabled { opacity: 0.6; cursor: default; }
.rodape { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--borda); }
.rodape p { margin: 0; font-size: 12px; color: var(--texto-suave); }
