.ncs-auth-login {
  margin: 16px 0;
  padding: 0;
  font-family: inherit;
}
.ncs-auth-title {
  text-align: center;
  font-weight: 600;
  margin-bottom: 12px;
}
.ncs-auth-socials {
  display: grid;
  gap: 10px;
}
.ncs-auth-btn {
  width: 100%;
  min-height: 44px;
  border: 1px solid #d8d8d8;
  border-radius: 5px;
  background: #fff;
  color: #222;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  padding: 10px 14px;
  transition: .2s ease;
}
.ncs-auth-btn:hover { transform: translateY(-1px); box-shadow: 0 3px 12px rgba(0,0,0,.08); }
.ncs-icon {
  display: inline-flex;
  width: 24px;
  justify-content: center;
  margin-right: 7px;
  font-weight: 700;
}
.ncs-google { background:#fff; }
.ncs-facebook { background:#1877f2; color:#fff; border-color:#1877f2; }
.ncs-otp-toggle { background:#111827; color:#fff; border-color:#111827; margin-top: 4px; }
.ncs-send-otp, .ncs-verify-otp { background:#2563eb; color:#fff; border-color:#2563eb; margin-top:10px; }
.ncs-divider {
  display:flex; align-items:center; gap:10px; margin:15px 0;
  color:#777; font-size:12px;
}
.ncs-divider:before, .ncs-divider:after { content:""; height:1px; background:#e5e7eb; flex:1; }
.ncs-otp-panel { margin-top:12px; }
.ncs-otp-panel label { display:block; margin:8px 0 5px; font-size:13px; font-weight:600; }
.ncs-otp-panel input {
  width:100%; box-sizing:border-box; padding:11px 12px; border:1px solid #d1d5db;
  border-radius:5px; font-size:15px;
}
.ncs-recaptcha { margin:12px 0; min-height:78px; }
.ncs-auth-message { margin-top:10px; font-size:13px; line-height:1.45; }
.ncs-auth-message.is-error { color:#b91c1c; }
.ncs-auth-message.is-success { color:#166534; }
.ncs-auth-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }
