/* ==========================================================================
   Área interna — telas de autenticação (login, senha)
   ========================================================================== */
.auth-body {
  margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: var(--bg); color: var(--text); font-family: var(--font-body); padding: 24px;
}
.auth-theme-toggle { position: fixed; top: 20px; right: 20px; }
.auth-shell { width: 100%; max-width: 400px; }
.auth-card {
  background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: var(--shadow-md); padding: 32px 28px;
}
.auth-brand {
  display: inline-flex; align-items: center; gap: 10px; color: var(--brand-700); text-decoration: none;
  font-family: var(--font-heading); font-weight: 600; font-size: 1.05rem; margin-bottom: 24px;
}
.auth-brand .brand__mark { display: inline-flex; }
.auth-title { margin: 0 0 6px; font-size: 1.4rem; font-family: var(--font-heading); color: var(--text); }
.auth-subtitle { margin: 0 0 24px; color: var(--text-muted); font-size: .92rem; line-height: 1.5; }

.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-field { display: flex; flex-direction: column; gap: 6px; font-size: .85rem; font-weight: 600; color: var(--text); }
.auth-field input {
  font: inherit; padding: 11px 14px; border-radius: var(--radius-sm); border: 1px solid var(--border);
  background: var(--bg); color: var(--text);
}
.auth-field input:focus { outline: 2px solid var(--brand-500); outline-offset: 1px; }
.auth-help { font-size: .78rem; font-weight: 500; color: var(--text-muted); }

.auth-field__input-wrap { position: relative; display: flex; }
.auth-field__input-wrap input { flex: 1; padding-left: 40px; }
.auth-field__icon {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--text-muted); font-size: 1rem; pointer-events: none;
}
.auth-field__input-wrap input:focus ~ .auth-field__icon { color: var(--brand-600); }

.auth-checkbox { display: flex; align-items: center; gap: 8px; font-size: .85rem; font-weight: 500; color: var(--text); }
.auth-checkbox input { width: 16px; height: 16px; accent-color: var(--brand-600); }

.auth-error { font-size: .8rem; font-weight: 600; color: #d64545; }
.auth-error--form {
  margin: -4px 0 0; padding: 10px 12px; border: 1px solid #d64545; border-radius: var(--radius-sm);
  background: rgba(214, 69, 69, .08);
}
.auth-error--form p { margin: 0; }

.auth-submit { margin-top: 4px; width: 100%; justify-content: center; }

.auth-links { margin: 20px 0 0; text-align: center; font-size: .88rem; }
.auth-links a { color: var(--brand-600); font-weight: 600; text-decoration: none; }
.auth-links a:hover { text-decoration: underline; }
