/* ===== Login (layout claro isolado) ===== */
*{ box-sizing:border-box; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

html, body, .login-wrap, .login-card, .login-title, .login-desc,
.login-label, .login-input, .login-link, .btn, .login-footer-text, .login-subtitle {
  font-family:'Figtree', system-ui, -apple-system, Segoe UI, Roboto, Arial !important;
}

body.login-page{
  background:#f5f7fb;
  color:#0f172a;
  min-height:100dvh;
  display:flex; align-items:flex-start; justify-content:center;
}

.login-wrap{ width:100%; max-width:720px; margin:56px 16px; text-align:center; }
.login-logo{ width:120px; height:auto; margin:0 auto 8px; display:block; }
.login-subtitle{ color:#334155; margin-bottom:18px; font-weight:500; }

.login-card{
  background:#fff; border-radius:18px; padding:28px;
  margin:0 auto; text-align:left; box-shadow:0 8px 30px rgba(2,6,23,.08);
}

.login-title{
  font-size:26px; line-height:1.2; font-weight:600; /* semibold */
  margin:0 0 6px 0; color:#0b1324;
}
.login-desc{ margin:0 0 18px 0; color:#475569; font-weight:400; }

.login-label{ display:block; font-size:14px; color:#334155; margin:12px 0 6px; font-weight:600; }

.login-input{
  width:100%; padding:12px 14px; border-radius:12px;
  border:1px solid #e2e8f0; background:#fff; color:#0f172a;
  outline:none; transition:border-color .2s, box-shadow .2s; line-height:1.4;
}
.login-input::placeholder{ color:#94a3b8 }
.login-input:focus{ border-color:#0e3a5f; box-shadow:0 0 0 4px rgba(14,58,95,.12) }

.login-actions{ display:flex; justify-content:flex-start; margin:6px 0 10px; }
.login-link{ color:#0e8778; text-decoration:none; font-size:16px; font-weight:500; }
.login-link:hover{ text-decoration:underline; }

.btn{
  display:inline-block; width:100%; text-align:center; cursor:pointer;
  border-radius:999px; padding:12px 18px; font-weight:600; border:2px solid transparent;font-size:16px;
}
.btn-primary{ background:#083654; color:#fff; }
.btn-primary:hover{ filter:brightness(1.08) }
.btn-outline{ background:#0e8778; color:#fff; }
.btn-outline:hover{ filter:brightness(1.08) }

.login-divider{ height:1px; background:#e2e8f0; margin:16px 0; }
.login-footer-text{ text-align:center; color:#475569; margin-bottom:10px; font-weight:500; }

.login-alert{
  background:#fee2e2; color:#7f1d1d; border:1px solid #fecaca;
  padding:10px 12px; border-radius:12px; margin-bottom:12px; font-size:14px; font-weight:500;
}

/* Responsivo */
@media (max-width:520px){
  .login-card{ padding:20px }
  .login-title{ font-size:22px }
}
/* espaçamento entre itens do formulário */
.login-form{
  display: flex;
  flex-direction: column;
  gap: 16px;          /* <-- 16px entre cada item do form */
}

/* label + input com espaçamento menor interno */
.form-group{
  display: flex;
  flex-direction: column;
  gap: 6px;           /* distância entre label e input */
}
