/* Tela de login. Sem estilo inline (CSP da D4). */
[hidden] { display: none !important; }
body { margin: 0; font: 15px/1.4 system-ui, sans-serif; background: #f4f5f7; color: #1d2330; }
.caixa { max-width: 360px; margin: 10vh auto; padding: 24px; background: #fff; border-radius: 10px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .08); }
h1 { font-size: 20px; margin: 0 0 16px; }
label { display: block; margin: 0 0 12px; font-size: 13px; color: #4a5263; }
input { display: block; width: 100%; box-sizing: border-box; margin-top: 4px; padding: 8px; font: inherit;
  border: 1px solid #c9ced8; border-radius: 6px; }
button { padding: 8px 16px; font: inherit; border: 0; border-radius: 6px; background: #1d4ed8; color: #fff;
  cursor: pointer; }
button:disabled { opacity: .6; cursor: default; }
button.link { background: none; color: #1d4ed8; padding: 8px 0 0; display: block; }
.msg { min-height: 1.4em; color: #b42318; margin: 0 0 8px; }
.chave { font-family: ui-monospace, monospace; font-size: 15px; word-break: break-all; }
/* QR do TOTP (qr.js, ADR-0024): tamanho e fundo por classe, nunca por style. */
svg.qr { display: block; width: 220px; height: 220px; margin: 0 auto 12px; background: #fff; }
.caixa-guardei { display: flex; gap: 8px; align-items: center; color: #1d2330; }
.caixa-guardei input { display: inline; width: auto; margin: 0; }
/* Aviso fixo do recadastro (falhas de login não zeram com o código de recuperação, D4). */
.alerta { color: #b42318; font-weight: 600; }
