/* Login: identidade compartilhada com a aplicação, sem menu lateral. */
* { box-sizing: border-box; }
body { margin: 0; min-height: 100dvh; background: var(--cor-fundo-aplicacao); color: var(--cor-texto-principal); font-family: var(--fonte-principal); font-size: var(--tamanho-texto-sm); }
.marca-login { height: var(--altura-barra-superior); background: var(--cor-barra-superior); padding-left: var(--recuo-logo-barra); }
.marca-login img { height: 100%; width: var(--largura-logo-barra); object-fit: contain; object-position: left center; }
main { min-height: calc(100dvh - var(--altura-barra-superior)); display: flex; flex-direction: column; justify-content: center; align-items: center; padding: var(--espaco-6); gap: var(--espaco-5); }
.painel-login { width: 100%; max-width: var(--largura-painel-login); padding: var(--espaco-painel-login); background: var(--cor-superficie); border: var(--borda-padrao) solid var(--cor-borda); border-radius: var(--raio-cartao); box-shadow: var(--sombra-cartao); }
.identificacao { color: var(--cor-login-destaque); letter-spacing: .12em; font-size: var(--tamanho-texto-xs); font-weight: var(--peso-negrito); margin: 0 0 var(--espaco-3); }
h1 { font-size: var(--tamanho-titulo-pagina); margin: 0 0 var(--espaco-2); }
.introducao { color: var(--cor-texto-secundario); line-height: var(--altura-linha-base); margin: 0 0 var(--espaco-6); }
form { display: flex; flex-direction: column; }
label { font-weight: var(--peso-medio); margin-bottom: var(--espaco-2); }
input, button { font: inherit; }
/* Campos textuais: checkboxes preservam o controle nativo comum, sem dimensões próprias. */
input:not([type="checkbox"]) { width: 100%; min-width: 0; height: var(--altura-campo); border: 1px solid var(--cor-borda-forte); border-radius: var(--raio-controle); padding: 0 var(--espaco-3); background: var(--cor-superficie); color: var(--cor-texto-principal); }
#usuario { margin-bottom: var(--espaco-5); }
.campo-senha { display: flex; border: 1px solid var(--cor-borda-forte); border-radius: var(--raio-controle); }
.campo-senha input { border: 0; height: calc(var(--altura-campo) - 2px); }
button { cursor: pointer; }
#mostrar-senha { border: 0; border-radius: var(--raio-controle); background: transparent; color: var(--cor-login-destaque); padding: 0 var(--espaco-3); min-width: 80px; font-weight: var(--peso-medio); }
.recuperar { align-self: flex-end; min-height: 44px; padding: var(--espaco-2) 0; margin: var(--espaco-1) 0 var(--espaco-4); border: 0; background: transparent; color: var(--cor-login-destaque); text-decoration: underline; text-underline-offset: 3px; }
.entrar { height: var(--altura-botao); border: 0; border-radius: var(--raio-controle); background: var(--cor-login-destaque); color: var(--cor-texto-invertido); font-weight: var(--peso-semi-negrito); }
.entrar:hover { filter: brightness(.9); }
:focus-visible { outline: 2px solid var(--cor-login-destaque); outline-offset: 3px; }
#mensagem { margin: var(--espaco-4) 0 0; line-height: var(--altura-linha-sm); color: var(--cor-texto-secundario); }
#mensagem:empty { display: none; }
.nota { color: var(--cor-texto-secundario); font-size: var(--tamanho-texto-xs); text-align: center; line-height: var(--altura-linha-sm); margin: 0; }
@media (max-width: 480px) { main { padding: var(--espaco-4); } .painel-login { padding: var(--espaco-5); } }
