/* Telas de acesso (login, senha). */
body.acesso { margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--espaco-4); box-sizing: border-box; background: var(--fundo-secundario); color: var(--texto-principal); font-family: var(--font-family-ui); font-size: var(--fonte-md); overflow: auto; }
.acesso-cartao { width: 100%; max-width: 420px; background: var(--fundo-principal); border: 1px solid var(--cor-borda); border-top: 4px solid var(--cor-acao); border-radius: var(--raio-lg); padding: var(--espaco-6) var(--espaco-5); box-shadow: var(--sombra-2); }
.acesso-topo { text-align: center; margin-bottom: var(--espaco-5); }
.acesso-logo { height: 64px; object-fit: contain; margin-bottom: var(--espaco-2); }
.acesso-marca { font-size: var(--fonte-xl); text-transform: uppercase; letter-spacing: 2px; color: var(--cor-acao); margin: 0 0 var(--espaco-2) 0; }
.acesso-subtitulo { font-size: var(--fonte-xs); color: var(--texto-secundario); font-weight: var(--peso-forte); text-transform: uppercase; letter-spacing: 0.2em; margin: 0; }
.acesso-texto { color: var(--texto-secundario); line-height: 1.5; margin: 0 0 var(--espaco-4) 0; text-align: center; }
.acesso-rodape { margin-top: var(--espaco-5); padding-top: var(--espaco-4); border-top: 1px solid var(--cor-borda); text-align: center; font-size: var(--fonte-xs); color: var(--texto-secundario); text-transform: uppercase; }
.acesso-rodape strong { color: var(--texto-principal); }
.acesso-rodape a { color: var(--texto-secundario); font-weight: var(--peso-forte); text-decoration: none; }
.acesso-rodape a:hover, .campo-icone + .link-direita a:hover { color: var(--cor-acao); }
.campo-icone { position: relative; }
.campo-icone > i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--texto-secundario); pointer-events: none; }
.campo-icone input { padding-left: 36px; min-height: 40px; }
.link-direita { text-align: right; margin-top: 4px; font-size: var(--fonte-xs); }
.link-direita a { color: var(--texto-secundario); text-decoration: none; font-weight: var(--peso-forte); text-transform: uppercase; }
.btn-acesso { width: 100%; padding: 13px; text-transform: uppercase; letter-spacing: 2px; font-weight: 700; }
.acesso-fade { animation: acessoFade 0.3s ease-out; }
.acesso-fade[hidden] { display: none; }
@keyframes acessoFade { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.link-invalido { text-align: center; padding: var(--espaco-4); border: 1px dashed var(--cor-erro); border-radius: var(--raio-md); margin-bottom: var(--espaco-4); }
.link-invalido i { font-size: 32px; color: var(--cor-erro); display: block; margin-bottom: var(--espaco-2); }
.link-invalido p { color: var(--texto-secundario); margin: var(--espaco-2) 0 0 0; }
