.login-body {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  padding-bottom: max(24px, env(safe-area-inset-bottom));
}
.login-card {
  width: 100%;
  max-width: 380px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 28px 22px 22px;
  box-shadow: var(--shadow);
}
.login-brand { display: flex; gap: 12px; align-items: center; margin-bottom: 22px; }
.login-brand h1 { margin: 0; font-size: 1.25rem; }
.login-card label {
  display: block; font-size: .8rem; color: var(--muted);
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px;
}
.login-card input[type=password] {
  width: 100%; font-size: 1.05rem; padding: 14px 14px;
  border-radius: 12px; border: 1px solid var(--line);
  background: #0f1626; color: var(--text); margin-bottom: 14px;
}
.login-card input:focus { outline: 2px solid var(--accent); border-color: transparent; }
.login-card button[type=submit] {
  width: 100%; padding: 14px; font-size: 1rem; font-weight: 700;
  border-radius: 12px; border: 0; cursor: pointer;
  background: linear-gradient(135deg, var(--accent), #1f9d6a); color: #04140d;
}
.login-card button:disabled { opacity: .6; }
.login-err { color: var(--danger); font-size: .9rem; margin: 12px 0 0; }
.login-foot { color: var(--muted); font-size: .75rem; text-align: center; margin: 16px 0 0; }
